Nextcloud - "Strict-Transport-Security" / Aktivieren von HSTS

german
nextcloud

#1

Hallo,

ich erhalte in der Nextcloud die folgende Fehlermeldung.

Der “Strict-Transport-Security” HTTP-Header ist nicht auf mindestens “15552000” Sekunden eingestellt. Um die Sicherheit zu erhöhen, empfehlen wir das Aktivieren von HSTS

Was muss ich tun um den Fehler zu beseitigen?

Danke Frank


#2

Hallo zurueck,

sofern das Modul mod_headers aktiviert ist, wird in der Apache-Konfiguration im Container der Domain der STS-Header ergaenzt:

<VirtualHost <ip>:443>
   ServerAdmin support@TLD.com
   ServerName www.TLD.com
   # HSTS einrichten -- erfordert mod_headers!
   Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
   [...]
</VirtualHost>

Die Security Headers koennen hier getestet werden: https://securityheaders.io/ :wink:


#3

Dafür gibt m.E. UCR-Variablen.

root@ucs-8762:~# ucr search hsts
apache2/hsts/includeSubDomains: <empty>
 Applies HSTS policy also to subdomains if set to 'yes'.

apache2/hsts/max-age: <empty>
 Time in seconds of how long web browsers will cache and enforce the HSTS policy on the host. Defaults to '10886400' - which are 18 weeks.

apache2/hsts: <empty>
 Enable HTTP Strict Transport Security (HSTS) by setting this variable to 'yes'. 'apache2/force_https' should be enabled additionally to take full advantage of HSTS.



#4

Danke das war der gute Tipp


#5

wenn ich “ucr search” eingebe erhalte ich diesen Fehler:

root@nextc-81739309:/# ucr search hsts
bash: ucr: command not found

ist “ucr” ein Programm das ich erst noch mit apt-get installieren muss?


#6

ucr ist eine Executable das nur auf Univention Systemen existiert. Das Kommando wird daher auf dem Univention System ausgeführt werden müssen, nicht im Docker Container von Nextcloud.


#7

Es ist auch aus rein funktionalen Aspekten nötig, HSTS auf dem System, mit dem die Clients reden, zu konfigurieren. Also dem UCS.


#8

wo finde ich die datei mit diesem Inhalt. Irgendwie ist in UCS alles etwas anders und ich finde nicht einmal diese Datei mit den VirtualHost Einträgen:

<VirtualHost <ip>:443>
   ServerAdmin support@TLD.com
   ServerName www.TLD.com

etc…
wenn ich auf diese Datei zugreifen kann dann käme ich vermutlich etwas weiter mit diesem Problemchen?
Andernfalls bin ich völlig verloren. :frowning:
vielen Dank


#9

Die Konfiguration erfolgt in der default-ssl.conf (unter sites-available bzw. sites-enabled). Dort landen dann auch nach dem Setzen der oben genannten UCR-Variablen die HSTS-Einstellungen. Docker-Gäste müssen normalerweise nicht extra dafür konfiguriert werden.


#10

sorry, aber irgendwie bin ich zu blöd dazu. :blush:

wenn ich folgende schritte mache:

Administrator@ucs-nexcloud:~$ sudo univention-app shell nextcloud
root@nextc-81739309:/# vim /etc/apache2/sites-enabled/000-default.conf

Inhalt der 000-default.conf:
Screenshot%20from%202018-09-12%2009-10-52

und bei: /etc/apache2/sites-available/default-ssl.conf
sieht es nicht viel besser aus???

Screenshot%20from%202018-09-12%2009-12-12
Screenshot%20from%202018-09-12%2009-12-32

Soll ich die nachfolgenden Angaben zu HSTS manuell unter <VirtualHost… eintragen oder ist HSTS bei mir gar nicht aktiv oder???
Was mache ich falsch, wo ist der Denkfehler?

<VirtualHost <ip>:443>
   ServerAdmin support@TLD.com
   ServerName www.TLD.com
   # HSTS einrichten -- erfordert mod_headers!
   Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
   [...]
</VirtualHost>

#11

Scheinbar haben wir dich irgendwo total verwirrt. Innerhalb von Univention erfolgt die Konfiguration in der Regel über die Univention Web IU oder mittels UCR Variablen (die wiederum über die UI oder über die Kommandozeile gesetzt werden können). Wenn HSTS verwendet werden soll, dann muss dies nicht innerhalb des Nextcloud Containers konfiguriert werden, sondern auf dem Univention Host. Hierfür reicht per CLI ein “einfaches” ucr set apache2/force_https=yes apache2/hsts=yes.

Um es nochmal zu verdeutlichen. Konfigurationsdateien müssen hierfür nicht händisch verändert werden. Im Gegenteil sogar, dies zu tun ist in den meisten fällen sogar kontraproduktiv, da Änderungen dann durch Univention im späteren Verlauf überschrieben werden könnten.