CSSCurrent de:Erweiterte Konfiguration

Aus Cryptshare Documentation
Wechseln zu:Navigation, Suche

Cryptshare Systemeinstellungen

Durch Anlegen einer zusätzlichen Konfigurationsdatei mit Namen 'cryptshare.properties' im Cryptshare Installationsverzeichnis können bestimmte Teile des Cryptshare Servers in ihrem Verhalten beeinflusst werden. Diese Einstellungen sind zur Nutzung bei Fehlverhalten innerhalb der Cryptshare Anwendung vorgesehen. Zum jetzigen Zeitpunkt existieren Einstellungen für die folgenden Bereiche:

  • Überspringen von Schritten während des Bereinigungsvorganges (Cleanup Task)
  • Größe des Threadpools für den Verschlüsselungsvorgang
  • Maximaler Timeout für das Warten des BackupTasks
cryptshare.properties existiert nicht
Standardmäßig ist die Datei 'cryptshare.properties' nicht Teil der Cryptshare Installation und muss zunächst angelegt werden:
  1. Öffnen Sie das Cryptshare Installationsverzeichnis und legen Sie die Datei 'cryptshare.properties' an.
  2. Legen Sie die gewünschten Einstellungen an. Erstellen Sie einen Parameter pro Zeile nach folgendem Schema:

<Schlüssel>=<Wert>

  1. Speichern Sie die Änderungen
Neustart des Systems
Bitte beachten Sie, dass die Änderungen erst nach einem Neustart des Systems wirksam werden.
Mustervorlage einer cryptshare.properties Datei
# DE: weitere Hilfe: https://documentation.cryptshare.com/w/CSSCurrent_de:Erweiterte_Konfiguration
upload.html.maxerrors = 100
mainPoolSize = 150

Datenbank

Datenbank-Verbindungspool

Abhängig von den Anforderungen Ihres Cryptshare Servers und der zu erwartenden Last kann es notwendig sein, die Ressourcenzuweisung für die Datenbank zu erhöhen.

Berechnen der Poolgröße

Die folgende Formel kann zur Berechnung einer geeigneten Poolgröße verwendet werden:

(cpu_kern_anzahl * 2) + 1

Hier sind einige Beispiele mit aufgerundeter Poolgröße:

CPU Kerne 2 4 8 16
Poolgröße 5 10 20 35
Beachten Sie, dass sich sowohl eine zu kleine als auch eine zu große Poolgröße negativ auf die Leistung auswirken kann. Wenn die Poolgröße zu klein ist, werden die verfügbaren Systemressourcen nicht voll ausgeschöpft und Anfragen müssen möglicherweise warten, bis der Pool Verbindungen freigibt. Wenn die Pool-Größe zu groß ist, können sich die Anfragen verlangsamen, da sie sich CPU-Kerne teilen müssen.
Database Optimization
database.connection.maxPoolSize=<int>
database.connection.minIdlePoolSize=<int>
Standardwert: '5' (Beide) <int> : Numerischer Wert für die maximale Poolgröße.

Überspringen von Bereinigungsschritten

Der Bereinigungsvorgang besteht aus mehreren Schritten, die in zeitlicher Abfolge hintereinander durchgeführt werden. Kann einer dieser Schritte aufgrund von Inkonsistenzen oder internen Datenbankfehlern nicht ordnungsgemäß beendet werden, oder bleibt hängen, so kann der betroffene Schritt übersprungen werden, damit der Rest des Bereinigungsvorganges abgeschlossen werden kann.

Beachten Sie bitte, dass das Überspringen von Bereinigungsschritten nicht empfohlen wird, solange keine Fehler auftreten, welche den Bereinigungsvorgang davon abhalten, die Prozedur abzuschließen.

Schritte, welche übersprungen werden können

Um herauszufinden, welcher Ausführungsschritt für ein Fehlverhalten verantwortlich ist, kann das Systemlog überprüft werden, und dieser Schritt anschließend mittels des entsprechenden Parameters deaktiviert werden.


LockData Bereinigungsschritt

cleanup.skip.lockData = <true|false>

LockData ist ein interner Datensatz, welcher die Anzahl fehlgeschlagener Passworteingaben im Downloadbereich aufzeichnet. Diese Daten werden vom System entfernt, sobald sie nicht mehr benötigt werden, zum Beispiel wenn ein Transfer abgelaufen ist.

Dieser Schritt kann ohne Risiko deaktiviert werden, führt jedoch zu einem Anwachsen der Datenbank durch Datensätze, die nicht mehr benötigt werden.

Verification Bereinigungsschritt

cleanup.skip.verifications = <true|false>

'Verification'-Datensätze repräsentieren den serverseitigen Teil eines verifizierten Benutzers. Abgelaufene Verifizierungen werden vom System entfernt.

Dieser Schritt kann ohne Risiko deaktiviert werden, führt jedoch zu einem Anwachsen der Datenbank durch Datensätze, die nicht mehr benötigt werden.

Timeout für den Wartevorgang des BackupTask

Sofern das Datenbankbackup aktiviert wurde, ist der BackupTask so eingerichtet, dass auf den Abschluss anderer Tasks gewartet wird, bevor das Backup durchgeführt wird. Sollte einer dieser Tasks jedoch nicht ordnungsgemäß abgeschlossen werden, würde der BackupTask endlos im Wartezustand verbleiben. Die Einstellung für den maximalen Timeout legt fest, dass der BackupTask mit dem Backup fortfährt, auch wenn sich noch andere Tasks in der Ausführung befinden. Die Standardeinstellung liegt bei 60 Minuten.

Parameter zur Steuerung der Wartezeit des BackupTask
backup.maxWait = <int>
<int> : Numerischer Wert für den Timeout in Minuten
Standardwert: 60

Performanceanpassungen

Ändern Sie diesen Wert nur, falls Fehler während des Verschlüsselungsvorganges auftreten. Zum Beispiel bei unterbrochenen Verschlüsselungsvorgängen.

Threadpool für die Verschlüsselung

Die Größe für den Cryptshare Verschlüsselungs-Threadpool legt die maximale Menge von parallelen Verschlüsselungsvorgängen für Cryptshare Transfers fest. Die Standardeinstellung ist auf 30 festgelegt. Dies bedeutet, dass bei einem Cryptshare Server mit dieser Einstellung 30 parallele Verschlüsselungsvorgänge initiiert werden können. Der nächste Vorgang, welcher dieses Maximum überschreiten würde, gerät in eine Warteschleife und wird ausgeführt, sobald wieder ein Thread aus dem Pool verfügbar ist. Zusätzlich zur Steuerung der Verschlüsselungs-Threadpoolgröße beeinflusst dieser Parameter die Zahl der parallelen Vorgänge zur Sammlung von Vorverarbeitungsergebnissen, wenn die Ausgabe dieser aktiviert ist.

Beachten Sie bitte, dass diese Einstellung einen großen Einfluss auf die CPU-Last nimmt!
  • Ein hoher Wert für diesen Parameter ERHÖHT die CPU-Last
  • Ein niedriger Wert für diesen Parameter VERRINGERT die CPU-Last
Parameter zur Festlegung der Verschlüsselungsthreadpoolgröße
mainPoolSize = <int>
<int>: Numerischer Wert zur Festlegung der Threadpoolgröße
Standardwert: 30

Threadpool für den Mailversand

Die Größe für den Cryptshare Mailing-Threadpool legt die maximale Menge von parallelen Mailsendevorgängen fest. Um den Durchsatz versandter E-Mails zu erhöhen, können Sie den Wert selbst konfigurieren. Bitte beachten Sie, dass E-Mail-Server häufig nur eine begrenze Menge gleichzeitiger Verbindungen zulassen. Sollten Sie den Parameter für den "Theadpool für den Mailversand" anpassen, so stellen Sie sicher, dass Ihr E-Mail-Server mit dieser Menge auch umgehen kann.

Parameter zur Festlegung der Mailingthreadpoolgröße
mailingPoolSize = <int>
<int>: Numerischer Wert zur Festlegung der Threadpoolgröße
Standardwert: 5

Download-Entschlüsselungspuffer

Cryptshare arbeitet mit einer AES-Verschlüsselung. Dieser Algorithmus ist dafür bekannt, deutlich mehr Ressourcen für die Entschlüsselung als für die Verschlüsselung zu brauchen. Abhängig davon, wie das System hauptsächlich genutzt wird, kann eine Änderung der Puffergröße entweder die CPU/Speicher-Nutzung erhöhen oder verringern.

Der Standardwert für den Entschlüsselungspuffer liegt bei 2MB. Dies ist ein guter Wert um sowohl kleine als auch große Dateien zu behandeln. Wird der Server hauptsächlich für große Dateien verwendet, so kann das Vergrößern des Puffers zu einer merkbaren Verbesserung der CPU-Auslastung führen. Eine Erhöhung der Speichernutzung ist allerdings die Folge.

Bitte behandeln Sie diesen Parameter mit Vorsicht, da er einen großen Einfluss auf CPU- und Speichernutzung haben kann.
Parameter für die Größe des Entschlüsselungspuffers
decrypt.buffer = <int>
<int>: Numerischer Wert zur Größenangabe des Entschlüsselungspuffers in bytes.
Standardwert: 2097152 (2MB)

Download-Verzögerung

Unter hoher Last reduziert der Cryptshare Server die Entschlüsselungsgeschwindigkeit von Dateien, die heruntergeladen werden, um die Erreichbarkeit des Cryptshare Servers zu verbessern. Dieses Verhalten kann deaktiviert werden, falls Probleme damit auftreten.

Diese Einstellung kann auf "false" gesetzt werden, ohne den Server neu starten zu müssen - die Änderungen werden direkt angewendet. Wenn der Wert auf "true" gesetzt wird, ist ein Neustart erforderlich.
Parameter für die Größe des Entschlüsselungspuffers
decrypt.delay=<true|false>

HTML5 Transfereinstellungen

Parallele HTML5 Upload Streams

Bitte ändern Sie diesen Parameter nur bei Performanceproblemen wie abgebrochenen HTML5-Uploads aufgrund hoher I/O-Last oder CPU-Last.

Bitte beachten Sie auch, dass das Verkleinern dieses Wertes die HTML5-Uploadrate verlangsamen wird.

Ab Cryptshare Version v4.1.3 wird die Menge der parallelen Uploads bei einer langsamen Verbindung automatisch reduziert.
Parameter für parallele HTML5 Uploadstreams
upload.html.parallel = <int>
<int>: Numerischer Wert zur Festlegung der maximalen Anzahl paralleler HTML5 Uploadstreams.

Standardwert: 5

Maximum: 5

HTML5 Cleanup-Tracker Timeout

Im HTML5 Transfermodus wird jeder Upload-Stream durch einen Cleanup-Tracker überwacht, welcher sicherstellt, dass Uploaddateien von unterbrochenen Transfers vom System entfernt werden.

Bei einer schlechten Internetverbindung kann jedoch die Standardeinstellung von 10 Minuten zu kurz sein und laufende HTML5-Uploads werden unterbrochen, bevor der Upload vollständig ist.

Um dieses Verhalten zu vermeiden, kann die Standardeinstellung erhöht werden.
Cleanup Tracker Timeout
upload.html.timeout = <int>
<int>: Numerischer Wert zur Festlegung des Timeouts in Minuten.

Standardwert: 10

Maximum: 60

HTML5 Client Fehler-Counter

Der HTML5 Transfermodus kann Transfers aufrecht erhalten, sogar wenn die Verbindung unterbrochen wird oder die Verbindung so schlecht ist, dass viele Requests in einen Timeout laufen.

Tritt solch ein Fehler auf, so wird der Client so lange die fehlgeschlagenen Pakete erneut senden, bis entweder alle Pakete erfolgreich übertragen wurden oder der Fehler-Counter überschritten ist. Wurde die maximale Anzahl an Fehlern erreicht, so bricht der Client den Transfer ab.

Tritt dieses Problem häufig bei Ihren Clients auf, so kann das Maximum für den Fehler-Counter erhöht werden, sodass Clients einen Transfer nicht so schnell unterbrechen.
HTML5 Client Fehler-Counter
upload.html.maxerrors = <int>
<int>: Numerischer Wert zur Festlegung des Fehler-Counters

Standardwert: 100

Erlaubt: 20-5000

LDAP-Einstellungen

Verbindungspool

Zur Steigerung der Performance von LDAP-Abfragen verwendet Cryptshare einen sogenannten Verbindungspool. Dabei handelt es sich um eine Anzahl von bereits aufgebauten Verbindungen zum LDAP-Server, die bei Bedarf verzögerungsfrei verwendet und wiederverwendet werden können. Die Anzahl der mindestens (initial) und maximal gleichzeitig aufgebauten Verbindungen lässt sich über Parameter steuern.

Initiale Anzahl Verbindungen

ldap.initialConnections = <int>
Maximale Anzahl Verbindungen

ldap.maxConnections = <int>
<int>: Numerischer Wert zur Festlegung der Anzahl Verbindungen.

Standardwert initiale Anzahl: 5

Standardwert maximale Anzahl: 20

Alternativ ist es möglich, die Verwendung von Verbindungspools komplett zu deaktivieren. Werden Verbindungspools deaktiviert, so hat die Konfiguration der Parameter ldap.initialConnections und ldap.maxConnections keine Auswirkungen mehr. Standardmäßig sind Verbindungspools aktiv und können bei Bedarf deaktiviert werden.

Verwendung von Verbindungspools

ldap.connectionPooling = <true|false>
Standardwert: true (Aktiviert)

Timeouts

Als Timeout wird eine Zeitspanne bezeichnet, die für eine bestimmte Tätigkeit zugelassen ist, bevor sie abgebrochen wird. Im Zusammenhang mit LDAP-Abfragen gibt es zwei konfigurierbare Timeouts: Verbindungstimeout: Zugelassene Dauer eines Verbindungsaufbaus zum LDAP-Server. Abfragetimeout: Zugelassene Dauer einer einzelnen LDAP-Abfrage.

Verbindungstimeout
ldap.connectTimeout = <int>
Abfragetimeout
ldap.responseTimeout = <int>
<int>: Numerischer Wert zur Festlegung der Dauer in Millisekunden.

Standardwert Verbindungstimeout: 5.000 (5 Sekunden)

Standardwert Abfragetimeout: 20.000 (20 Sekunden)

Verweise (Referrals)

Manche LDAP-Verzeichnisse sind partitioniert/verteilt und enthalten dann Einträge, die auf andere Verzeichnisserver verweisen (sog. Referrals). Optional kann die automatische Auflösung dieser Verweise durch eine zusätzliche aufgebaute LDAP-Verbindung aktiviert werden. Enthält der aufgelöste Verweis wiederum einen Verweis, wird dieser in keinem Fall aufgelöst.

Auflösung von Verweisen
ldap.followReferrals = <true|false>
Standardwert: false (Deaktiviert)

Sicherheitseinstellungen: Rate Limiting

Rate Limiting für das Anfordern von Verifizierungscodes

Zur Vermeidung von DoS-Angriffen und daraus folgendem Missbrauchs des E-Mail-Servers, ist ein Rate Limit bei Anfragen von Verifizierungscodes aktiv. Die Zahl der pro Minute anforderbaren Verifizierungscodes wird standardmäßig auf 25 eingeschränkt.

Info
Für den Umgang mit Rate Limit-Anfragen per Webservice-Schnittstelle stehen zusätzliche Response Header zur Verfügung. Details finden sich auf der Seite Rate Limiting.
Parameter zum Setzen des Rate Limits zum Anfordern von Verifizierungscodes
verification.verificationsPerMinute=<int>
<int>: Numerischer Wert, der die Zahl der maximalen Anforderungen nach Verifizierungscodes pro Minute regelt.

Standard: 25

Dieses Feature kann deaktiviert werden, indem der Wert auf 0 gesetzt wird.

Content Security Policy

Content Security Policy (CSP) ist ein zusätzlicher Sicherheitsmechanismus, der hilft, bestimmte Arten von Angriffen, z.B. Cross-Site Scripting (XSS), zu erkennen und zu entschärfen. Zu diesem Zweck kann ein sogenannter CSP-Header verwendet werden, der dem Client (Browser) nur den Zugriff auf bestimmte definierte Ressourcen erlaubt. Dies kann z.B. verhindern, dass ein Angreifer Schadcode aus einer unbekannten Quelle ausführt. Standardmäßig erlaubt der Cryptshare Server nur die Nutzung von Ressourcen aus der Domäne des Servers.

Parameter zum Hinzufügen von anderen URL's als Ressource
csp.fetchDirectives.urls=<string>
<string>: Durch Komma getrennte Liste von URLs, die für Ressourcen verwendet werden dürfen Default: ""

Beispiel: Um die zusätzlichen URLs "https://example.com" und "https://app.example.com/images" hinzuzufügen, setzen Sie den Wert auf "https://example.com,https://app.example.com/images".


Verarbeitung von EML Dateien

Priorisierung von Dateitypen bei der EML Archivierung und im EML Download

Bei der EML Archivierung und beim EML Download ist es möglich, eine maximale Gesamtgröße aller Anhänge die in die EML-Datei eingebettet werden anzugeben. Überschreiten die Anhänge diese Größe, so werden die Anhänge anhand einer Prioritätenliste von Dateityperweiterungen an die EML-Datei angehängt, wobei die Priorität der Dateityperweiterungen am Anfang am höchsten ist. Dateityperweiterungen die nicht aufgelistet werden haben die niedrigste Priorität. Wenn eine leere String als Prioritätenliste genutzt wird, wird diese Priorisierung der Dateityperweiterungen deaktiviert.

Info
Weitere Informationen zur EML Archivierung finden sich auf der Seite Aktivieren der Archivierung.
Parameter zum Setzen der Prioritätenliste der Dateianhänge bei Überschreiten der Maximalgröße
eml.attachmentFileTypeOrder=<csv>
<string>: Komma-separierte Liste von Dateiendungen Standard: eml,pdf,docx,doc,xlsx,xls,txt,ppt,pptx

Weitere Konfigurationsparameter

Aufräumen verwaister temporärer Uploaddateien

Während des Dateiuploads werden diese Daten in ein temporäres Uploadverzeichnis geschrieben. Aus technischen Gründen kann es jedoch vorkommen, dass diese Dateien hinterher nicht gelöscht werden. Aus diesem Grund wird ein zusätzlicher Bereinigungsschritt während der Ausführung des Bereinigungsvorganges ausgeführt, welcher dafür Sorge trägt, diese Dateien von der Festplatte zu entfernen sofern sie älter als 24 Stunden sind.

Parameter zur Abschaltung des Aufräumens verwaister temporärer Dateien
cleanup.skip.tmpfiles = <true|false>
Standardwert: true

Häufigkeit der Logeinträge für laufende Uploads

Damit der Administrator besser in der Lage ist laufende Uploads zu bemerken, wird nach dem Erreichen einer bestimmten Zahl von Upload-Requests ein informeller Logeintrag geschrieben. Ein Datei-Upload besteht dabei in der Regel aus mehreren Upload-Requests. Die Zählung erfolgt Transfer-übergreifend.

INFO  2016-04-29 08:45:51 CS3System - (com.cryptshare.wicket.request.HTML5FileItemFactory@1771fb9f) - Cryptshare upload in progress.

Abhängig von der Uploadaktivität dieses Servers können dies entweder zu viele oder zu wenige Einträge sein. In beiden Fällen kann der Zähler für dieses Feature entsprechend angepasst werden.

Parameter zur Kontrolle der Häufigkeit von Logeinträgen zu aktiven Uploadvorgängen
 upload.logverbosity = <int>
<int>: Numerischer Wert zur Festlegung, nach wie vielen Upload-Requests ein Log-Eintrag erfolgen soll. Standardwert: 1.000

Durchführung eines Backups vor dem Update

Für gewöhnlich wird vor der Durchführung eines Updates ein Rollback-Kompatibles Backup angelegt. Sollte das Backup nicht korrekt funktionieren und dadurch die Durchführung des Updates verhindern, so kann dieser Schritt deaktiviert werden.

Parameter zur Aktivierung des Backups vor dem Update
update.backup = <true|false>
Standardwert: true

Maximale Transfergröße der Dateivorschau

Die Dateivorschau im Downloadbereich von Cryptshare öffnet Dateien, nur wenn sie maximal 2MB groß sind. Aus Sicherheitsgründen werden Dateien ausschließlich im Arbeitsspeicher geöffnet, was den Speicherverbrauch massiv erhöhen kann.

Bitte beachten Sie, dass abhängig vom verfügbaren Arbeitsspeicher und dem durchschnittlichen Benutzerzugriff der Speicherverbrauch drastisch ansteigen kann, wenn diese Einstellung erhöht wird.
Dieser Wert wird auch für die Anzeige der vertraulichen Nachricht auf der Downloadseite herangezogen.
Erhöhen der maximalen Dateigröße für die Dateivorschau
viewer.maxSize = <int>
<int> : Integer für die maximale Größe in MB
Standardwert: 2

Maximale Dateitypenfilter Puffergröße

Wenn die eingebettete Dateianalyse des Dateitypfilters aktiv ist, werden unterstützte Dateien geöffnet und auf ihren Inhalt hin untersucht. Im Falle von MS Office-Dateien kann diese Analyse bei größeren Dateien viel Speicherplatz benötigen. Wenn Dateien aus diesem Grund nicht gescannt werden können, kann der folgende Parameter auf einen großen Wert gesetzt werden, um das Scannen dieser Dateien zu ermöglichen, allerdings auf Kosten eines erhöhten Speicherverbrauchs.

Erhöhung der maximalen Puffergröße bei der Analyse von Office-Dateien

fileTypeFilter.byteArrayMax= <int>
<int> : Integerwert, der die maximale Größe des Puffers für die Analyse von Office-Dateien in Bytes angibt.
Standardwert: 100000000 (100 Millionen Bytes = 100 MB)

Beschränkung der virtuellen Hosts

Standardmäßig antwortet der Cryptshare Server auf HTTP-Anfragen unabhängig vom Inhalt des 'Host'-Headers. Zum Schutz vor Host-Header-Injection-Attacken kann der Server so konfiguriert werden, dass er Anfragen mit einem Host-Header blockiert, der nicht dem kanonischen Host dieses Systems entspricht.

Host-Header einschränken

virtualHosts.restrict= <true|false>
Ob Host-Header in Anfragen eingeschränkt werden sollen. Wenn aktiviert, werden nur der Host der konfigurierten Basis-URL sowie zusätzliche Hosts aus `virtualHosts.additional` akzeptiert.
Standardwert: false
Bitte beachten Sie, dass eine falsche Konfiguration dazu führen kann, dass der Cryptshare Server über HTTP nicht erreichbar ist.

Zusätzliche virtuelle Hosts

Wenn `virtualHosts.restrict` aktiviert ist, kann `virtualHosts.additional` verwendet werden, um zusätzliche Hosts hinzuzufügen, unter denen der Server verfügbar ist.

Zusätzlichen virtuellen Host hinzufügen

virtualHosts.additional= <string>
Durch Kommata getrennte Hostnamen (neben der konfigurierten Basis-URL), unter denen dieser Cryptshare Server verfügbar ist. Siehe https://www.eclipse.org/jetty/documentation/jetty-9/index.html#configuring-a-virtual-host für Details zur Syntax.
Standardwert: ""

Beispiel: Um die zusätzlichen virtuellen Hosts "example.com" und "app.example.com" hinzuzufügen, setzen Sie den Wert auf "example.com,app.example.com".