Einführung / Konfiguration des FirstSpirit-Servers / Konfigurationsdateien (FirstSpirit-Server) / FirstSpirit-Server (fs-server.conf) / Storage Engine Properties

Bereich: Storage Engine Properties

Inhaltsverzeichnis
###########################
# storage engine properties
###########################
# use one shared cache for all repositories
repository.sharedCache=1

# time in seconds after a unused repository gets unloaded
REPOSITORY_UNLOAD_TIME=1800
# time in seconds after a unused registry gets unloaded (in seconds)
registry.unloadTime=1800

# Repository encryption
#----------------------
# Enable repository encryption. A keyfile must be set to enable encryption.
repository.encryption=0
# Path to master key file.
# The content of the file is read with UTF-8 encoding. Leading and trailing
# whitespace is ignored. The key characters are processed with the
# PBKDF2WithHmacSHA1 password-based key derivation function.
repository.encryption.keyFilePath=
# The symmetric encryption algorithm name, mode and padding.
# repository.encryption.algorithm=AES/CBC/PKCS5Padding
repository.encryption.algorithm=AES/CTR/NoPadding
 
# Keysize to use for the specified encryption algorithm.
# See SunJCE provider documentation for allowed keysizes.
repository.encryption.keySize=128

Alle Properties der Berkeley DB können auch in der Konfigurationsdatei fs-server.conf verwendet werden. Dazu muss jeweils das Präfix „repository.“ vor dem entsprechenden Property angegeben werden.

Die entsprechenden Properties befinden sich in der Dokumentation zur Berkeley DB (http://www.oracle.com/database/berkeley-db/index.html).

repository.sharedCache

Dieser Parameter ist standardmäßig auf den Wert 1 gestellt. Damit teilen sich die Berkeley DBs aller Projekte auf einem Server einen Cache. Dadurch wird gerade die Verwaltung des Berkeley DB-Caches für Server mit vielen Projekten vereinfacht und ist insgesamt effektiver.
Soll für jedes Projekt ein eigener Cache für die Berkeley DB verwendet werden, kann der Wert auf 0 gestellt werden.

REPOSITORY_UNLOAD_TIME

Über diesen Parameter kann definiert werden, nach welcher Zeitspanne (in Sek.) ohne Lese- oder Schreibaktion ein Repository geschlossen und aus dem Cache entfernt werden soll. Der Parameter ist standardmäßig auf den Wert 1800 gesetzt. Abhängig vom Projektumfeld kann es sinnvoll sein, hier eine größere Haltezeit einzustellen.

registry.unloadTime

Über diesen Parameter kann definiert werden, nach welcher Zeitspanne (in Sek.) ohne Lese- oder Schreibaktion die Registry geschlossen und aus dem Cache entfernt werden soll. Der Parameter ist standardmäßig auf den Wert 1800 gesetzt. Abhängig vom Projektumfeld kann es sinnvoll sein, hier eine größere Haltezeit einzustellen.

Konfiguration der verschlüsselten Dateiablage:

repository.defaultCompressor

Über diesen Parameter kann der Standardwert für die Repository-Kompression konfiguriert werden.

Mögliche Werte sind:

LZ4 (Standard):

repository.defaultCompressor=de.espirit.firstspirit.storage.backend.LZ4Compressor 

Deflate

repository.defaultCompressor=de.espirit.firstspirit.storage.backend.DeflaterCompressor 

[keiner]

repository.defaultCompressor=
Wichtig Ein geänderter Parameter wirkt sich nur auf neu angelegte Projekte aus.

repository.encryption

Das FirstSpirit-Repository, also Inhalte, Strukturen und Medien der FirstSpirit-Projekte, werden in der Regel unverschlüsselt gespeichert (Standardwert 0). Um eine verschlüsselte Dateiablage für diese Daten zu konfigurieren, muss der Parameter auf den Wert 1 gestellt werden. Die hier getroffene Einstellung wird als Voreinstellung für alle neu angelegten oder importierten Projekte übernommen:

  • Ist der Wert 1 gesetzt, wird die Projekteinstellung „Verschlüsselung aktiv“ (siehe Repository) für alle neu angelegten oder importierten Projekte aktiviert.
  • Ist der Wert 0 gesetzt, wird die Einstellung „Verschlüsselung aktiv“ für alle neu angelegten oder importierten Projekte deaktiviert.

Bereits bestehende Projekte bleiben von einer Änderung des Parameters unberührt, d.h. für bestehende Projekte muss die Verschlüsselung gesondert in den Projekteinstellungen aktiviert (oder deaktiviert) werden.

Bevor die Verschlüsselung aktiviert werden kann, muss ein globaler Server-Key erstellt (siehe Erstellen der Key-Datei) und der Pfad zum Server-Key-File über den Parameter repository.encryption.keyFilePath konfiguriert werden (s.u.).

repository.encryption.keyFilePath

Ist die verschlüsselte Dateiablage aktiviert (repository.encryption=1), wird über diesen Parameter der Pfad zum globalen Server-Schlüssel konfiguriert, beispielsweise:

repository.encryption.keyFilePath=${cmsroot}/conf/fs5key.txt

Der globale Server-Schlüssel muss mindestens 8 Byte lang sein. Der Inhalt der angegebenen Datei muss UTF-8-kodiert sein. Leerzeichen („Whitespaces“) am Anfang und Ende der Datei werden ignoriert. Der Pfad kann absolut oder relativ (zum Basis-Verzeichnis des FirstSpirit-Servers) angegeben werden. Als Platzhalter für das FirstSpirit-Basis-Verzeichnis kann ${cmsroot} verwendet werden.

Für jeden FirstSpirit-Server gibt es nur eine Key-Datei. In einem Cluster-Szenario mit Master- und Slave-Server (siehe Clustering: Lastverteilung bei der Generierung) müssen alle beteiligten Server dieselbe Key-Datei verwenden.

Wichtig Der Zugriff auf die globale Server-Key-Datei sollte gut abgesichert sein, um die Repository-Inhalte gegen unbefugten Zugriff zu schützen. Gleichzeitig gilt: Wird diese Key-Datei beschädigt oder geht verloren, ist kein Zugriff mehr auf die Repository-Inhalte möglich!

repository.encryption.algorithm

Über den hier konfigurierten, symmetrischen Algorithmus werden die Inhalte des Projekt-Repositorys verschlüsselt. Dazu wird nicht das Server-Key-File direkt verwendet, sondern ein interner Schlüssel für das Projekt-Repository gebildet. Für die Erzeugung des internen Projekt-Schlüssels wird der Key Derivation Algorithmus PBKDF2WithHmacSHA1 (65536 Iterationen, 256 Bit random Salt, 256 Bit Schlüssellänge, „Password-Based Key Derivation Function 2“) verwendet.  

Der vorkonfigurierte Beispielwert für die Verschlüsselung des Projekt-Repositorys ist AES/CTR/NoPadding (dieser Wert dient lediglich als Konfigurationbeispiel und stellt keine Empfehlung dar). Die eigentliche Verschlüsselung übernimmt die Java Cryptography Extension (JCE). Damit können hier alle symmetrischen Verschlüsselungen und Modi konfiguriert werden, die von der verwendeten Java-Plattform unterstützt werden. Die möglichen Algorithmen, Modi und Schlüssellängen können der JCE-Dokumentation entnommen werden:

(Zu Einschränkungen hinsichtlich bestimmter Java-Versionen siehe auch Abschnitt unten, Hinweise zu speziellen Java-Versionen.)

Der hier konfigurierte Wert wird in die Projekteigenschaften im ServerManager im Bereich „Repository“, Option Verschlüsselungs-Algorithmus, übernommen (für neu angelegte oder importierte Projekte). Für bestehende Projekte kann der Wert dort konfiguriert werden. 

repository.encryption.keySize

Über diesen Parameter kann die Schlüssellänge für die Verschlüsselung der Repository-Inhalte konfiguriert werden. Die hier konfigurierten Werte müssen zum konfigurierten Algorithmus (Verschlüsselung, Modi) passen und sind abhängig von der eingesetzten Java-Version (vgl. repository.encryption.algorithm). Die möglichen Werte können ebenfalls der JCE-Dokumentation entnommen werden.    

http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#SunJCEProvider

(Zu Einschränkungen hinsichtlich bestimmter Java-Versionen siehe auch Abschnitt unten, Hinweise zu speziellen Java-Versionen.)

Der hier konfigurierte Wert wird in die Projekteigenschaften im ServerManager im Bereich „Repository“, Option Schlüssellänge der Verschlüsselung, übernommen (für neu angelegte oder importierte Projekte). Für bestehende Projekte kann der Wert dort konfiguriert werden. 

Größere Schlüssellängen und stärkere Algorithmen können konfiguriert werden, wenn die „Unlimited Strength Jurisdiction Policy Files“ auf dem Server installiert sind:                                                      

http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#importlimits

Standard-Vorbelegung konfigurieren

Sobald eine Schlüsseldatei erstellt und konfiguriert wurde, können alle Parameter für die Verschlüsselung (pro Projekt) auch im Bereich „Repository“ des ServerManager (Projekteigenschaften) aktiviert und konfiguriert werden (siehe Repository). Alle Werte, die global über die fs-server.conf konfiguriert sind, werden innerhalb der Projektkonfiguration als Standardwerte vorgegeben. Das bedeutet, für Projekte, die ab diesem Zeitpunkt neu angelegt oder importiert werden, werden die global konfigurierten Werte als Standardwerte übernommen. Auf bestehende Projekte wirkt sich die globale Konfiguration nicht aus. Diese müssen über die Projekteinstellungen konfiguriert werden.                             
Innerhalb der Projektkonfiguration ist außerdem ein Test der Parameter möglich.

Weitere Informationen zur verschlüsselten Dateiablage siehe Verschlüsselte Dateiablage.

Wichtig Bei Änderungen an der Datei fs-server.conf ist ein Neustart des Servers erforderlich (vgl. Allgemeines zur Konfiguration).

© 2005 - 2023 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2023.13 | Datenschutz