[comment]: # translation:outdated

[comment]: # ({f4bccb67-40cfdec2})
# 3 Webserver

[comment]: # ({/f4bccb67-40cfdec2})

[comment]: # ({2ff4365d-129e34f5})
#### Übersicht

Dieser Abschnitt enthält bewährte Verfahren für die sichere Einrichtung des Webservers.

[comment]: # ({/2ff4365d-129e34f5})

[comment]: # ({a38dec5b-bb3706f4})
#### Erzwingen einer Weiterleitung der Root-URL auf die Zabbix-SSL-URL

Fügen Sie auf RHEL-basierten Systemen der Apache-Konfiguration (`/etc/httpd/conf/httpd.conf`) einen virtuellen Host hinzu und legen Sie eine permanente Weiterleitung für das Dokumentenstammverzeichnis auf die Zabbix-SSL-URL fest.
Beachten Sie, dass `example.com` durch den tatsächlichen Namen des Servers ersetzt werden sollte.

```ini
# Zeilen hinzufügen:

<VirtualHost *:*>
    ServerName example.com
    Redirect permanent / https://example.com
</VirtualHost>
```

Starten Sie den Apache-Dienst neu, um die Änderungen zu übernehmen:

```bash
systemctl restart httpd.service
```

[comment]: # ({/a38dec5b-bb3706f4})

[comment]: # ({3d62d250-c7ee0bb2})
#### Aktivieren von HTTP Strict Transport Security (HSTS) auf dem Webserver

Um das Zabbix Frontend vor Protocol-Downgrade-Angriffen zu schützen, empfehlen wir, die [HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security)-Richtlinie auf dem Webserver zu aktivieren.

Um die HSTS-Richtlinie für Ihr Zabbix Frontend in der Apache-Konfiguration zu aktivieren, führen Sie die folgenden Schritte aus:

1\. Suchen Sie die Konfigurationsdatei Ihres virtuellen Hosts:

-   `/etc/httpd/conf/httpd.conf` auf RHEL-basierten Systemen
-   `/etc/apache2/sites-available/000-default.conf` auf Debian/Ubuntu

2\. Fügen Sie die folgende Direktive zur Konfigurationsdatei Ihres virtuellen Hosts hinzu:

```ini
<VirtualHost *:*>
    Header set Strict-Transport-Security "max-age=31536000"
</VirtualHost>
```

3\. Starten Sie den Apache-Dienst neu, um die Änderungen zu übernehmen:

```bash
# Auf RHEL-basierten Systemen:
systemctl restart httpd.service

# Auf Debian/Ubuntu
systemctl restart apache2.service
```

[comment]: # ({/3d62d250-c7ee0bb2})

[comment]: # ({09df8737-8057bf9f})
#### Erzwingen sicherer und SameSite-Session-Cookies in Zabbix

Bei der Konfiguration von Zabbix ist es wichtig, sichere und SameSite-Attribute für Session-Cookies zu erzwingen, um die Sicherheit zu erhöhen und Cross-Site-Request-Forgery-(CSRF)-Angriffe zu verhindern. Das Erzwingen von ``SameSite=Strict`` kann jedoch in bestimmten Szenarien zu Problemen führen, zum Beispiel:

-   Dashboard-URL-Widgets zeigen „user not logged in“ an, wenn Iframes aus derselben Domain eingebettet werden.
-   Benutzer, die auf das Dashboard über HTTP statt HTTPS zugreifen, können Anmeldeprobleme haben.
-   Es ist nicht möglich, URLs zu bestimmten Zabbix-Menübereichen oder Hosts zu teilen.

Um diese Probleme zu vermeiden, sollten Benutzer die Möglichkeit haben, die SameSite-Richtlinie anzupassen.

1\. Sichere Cookies

Das Setzen des Flags ``secure`` stellt sicher, dass Cookies nur über HTTPS übertragen werden, wodurch eine Offenlegung über unverschlüsselte Verbindungen verhindert wird.

Um sichere Cookies in Zabbix zu aktivieren, fügen Sie die folgende Einstellung in der Webserver-Konfiguration hinzu oder ändern Sie sie:

Für Apache:

    Header always edit Set-Cookie ^(.*)$ $1;Secure

Für Nginx:

    proxy_cookie_path / "/; Secure";

Stellen Sie sicher, dass auf Ihr Zabbix-Frontend über HTTPS zugegriffen wird; andernfalls werden Cookies mit dem Flag ``Secure`` nicht gesendet.

2\. Konfigurieren des SameSite-Attributs

Webserver-Einstellungen können auch das SameSite-Attribut erzwingen:

Für Apache:

    <IfModule mod_headers.c>
        Header onsuccess edit Set-Cookie (.*) "$1; SameSite=Strict"
    </IfModule>

Für Nginx (Version 1.19.3+):

    proxy_cookie_flags ~ samesite=Strict; # Ersetzen Sie ~ durch 'zbx_session' für mehr Spezifität

[comment]: # ({/09df8737-8057bf9f})

[comment]: # ({0291801e-55d3532e})
#### Aktivieren der Content Security Policy (CSP) auf dem Webserver

Um das Zabbix Frontend vor Cross-Site-Scripting-(XSS)-, Dateninjektions- und ähnlichen Angriffen zu schützen, empfehlen wir, die Content Security Policy auf dem Webserver zu aktivieren.
Konfigurieren Sie dazu den Webserver so, dass er den [HTTP-Header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) zurückgibt.

::: noteimportant
Die folgende CSP-Header-Konfiguration gilt nur für die standardmäßige Zabbix Frontend-Installation und für Fälle, in denen alle Inhalte aus der Domain der Website stammen (mit Ausnahme von Subdomains).
Eine andere CSP-Header-Konfiguration kann erforderlich sein, wenn Sie beispielsweise das [*URL*](/manual/web_interface/frontend_sections/dashboards/widgets/url)-Widget so konfigurieren, dass Inhalte von Subdomains der Website oder externen Domains angezeigt werden, von *OpenStreetMap* auf eine andere Karten-Engine wechseln oder externe CSS-Dateien oder Widgets hinzufügen.
Wenn Sie die Duo Universal Prompt-[Multi-Faktor-Authentifizierung](/manual/web_interface/frontend_sections/users/authentication/mfa) verwenden, stellen Sie sicher, dass Sie "duo.com" zur CSP-Direktive in der Konfigurationsdatei Ihres virtuellen Hosts hinzufügen.
:::

Um CSP für Ihr Zabbix Frontend in der Apache-Konfiguration zu aktivieren, führen Sie die folgenden Schritte aus:

1\. Suchen Sie die Konfigurationsdatei Ihres virtuellen Hosts:

-   `/etc/httpd/conf/httpd.conf` auf RHEL-basierten Systemen
-   `/etc/apache2/sites-available/000-default.conf` auf Debian/Ubuntu

2\. Fügen Sie die folgende Direktive zur Konfigurationsdatei Ihres virtuellen Hosts hinzu:

```ini
<VirtualHost *:*>
    Header set Content-Security-Policy: "default-src 'self' *.openstreetmap.org; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; img-src 'self' data: *.openstreetmap.org; style-src 'self' 'unsafe-inline'; base-uri 'self'; form-action 'self';"
</VirtualHost>
```

3\. Starten Sie den Apache-Dienst neu, um die Änderungen zu übernehmen:

```bash
# Auf RHEL-basierten Systemen:
systemctl restart httpd.service

# Auf Debian/Ubuntu
systemctl restart apache2.service
```

[comment]: # ({/0291801e-55d3532e})

[comment]: # ({cc2b15aa-cd09dcd1})
#### Deaktivieren der Offenlegung von Webserver-Informationen

Zur Verbesserung der Sicherheit wird empfohlen, alle Webserver-Signaturen zu deaktivieren.

Standardmäßig gibt der Webserver die Softwaresignatur preis:

![](../../../../assets/en/manual/installation/requirements/software_signature.png)

Die Signatur kann deaktiviert werden, indem die folgenden Parameter zur Apache-Konfigurationsdatei hinzugefügt werden:

```ini
ServerSignature Off
ServerTokens Prod
```

Die PHP-Signatur (HTTP-Header X-Powered-By) kann durch Ändern der Konfigurationsdatei `php.ini` deaktiviert werden (standardmäßig ist die Signatur deaktiviert):

```ini
expose_php = Off
```

Damit Änderungen an der Konfigurationsdatei wirksam werden, ist ein Neustart des Webservers erforderlich.

Für zusätzliche Sicherheit können Sie das Tool *mod_security* mit Apache verwenden (Paket *libapache2-mod-security2*).
Dieses Tool ermöglicht das Entfernen der Server-Signatur, anstatt nur die Version aus der Server-Signatur zu entfernen.
Die Server-Signatur kann auf einen beliebigen Wert geändert werden, indem nach der Installation von *mod_security* "SecServerSignature" auf den gewünschten Wert gesetzt wird.

Bitte lesen Sie die Dokumentation Ihres Webservers, um Hilfe zum Entfernen/Ändern von Softwaresignaturen zu erhalten.

[comment]: # ({/cc2b15aa-cd09dcd1})

[comment]: # ({2053690e-720052da})
#### Deaktivieren der Standard-Fehlerseiten des Webservers

Um eine Offenlegung von Informationen zu vermeiden, wird empfohlen, die Standard-Fehlerseiten zu deaktivieren.

Standardmäßig verwendet ein Webserver integrierte Fehlerseiten:

![](../../../../assets/en/manual/installation/requirements/error_page_text.png)

Diese Standard-Fehlerseiten sollten ersetzt/entfernt werden.
Beispielsweise kann die Direktive "ErrorDocument" verwendet werden, um eine benutzerdefinierte Fehlerseite bzw. einen benutzerdefinierten Fehlertext für den Apache-Webserver zu definieren.

Bitte lesen Sie die Dokumentation Ihres Webservers, um Hilfe dazu zu erhalten, wie Standard-Fehlerseiten ersetzt/entfernt werden können.

[comment]: # ({/2053690e-720052da})

[comment]: # ({5dd327a4-ba1547c0})
#### Entfernen der Testseite des Webservers

Um eine Offenlegung von Informationen zu vermeiden, wird empfohlen, die Testseite des Webservers zu entfernen.

Standardmäßig enthält das Webroot des Apache-Webservers die Testseite `index.html`:

![](../../../../assets/en/manual/installation/requirements/test_page.png)

Bitte lesen Sie die Dokumentation Ihres Webservers, um Hilfe zum Entfernen der standardmäßigen Testseiten zu erhalten.

[comment]: # ({/5dd327a4-ba1547c0})

[comment]: # ({47163d34-7e4e4a45})
#### X-Frame-Options-HTTP-Antwortheader festlegen

Standardmäßig ist Zabbix mit dem Parameter *Use X-Frame-Options HTTP header* auf `SAMEORIGIN` konfiguriert.
Das bedeutet, dass Inhalte nur in einem Frame geladen werden können, der denselben Ursprung wie die Seite selbst hat.

Frontend-Elemente von Zabbix, die Inhalte von externen URLs abrufen (namentlich das URL-[Dashboard-Widget](/manual/web_interface/frontend_sections/dashboards/widgets/url)), zeigen die abgerufenen Inhalte in einer Sandbox mit allen aktivierten Sandbox-Einschränkungen an.

Diese Einstellungen erhöhen die Sicherheit des Frontends von Zabbix und bieten Schutz vor XSS- und Clickjacking-Angriffen.
Benutzer mit der Rolle *Super admin* können die Parameter *Use iframe sandboxing* und *Use X-Frame-Options HTTP header* bei Bedarf [ändern](/manual/web_interface/frontend_sections/administration/general#security).
Bitte wägen Sie die Risiken und Vorteile sorgfältig ab, bevor Sie die Standardeinstellungen ändern.
Es wird nicht empfohlen, das iframe-Sandboxing oder den X-Frame-Options-HTTP-Header vollständig zu deaktivieren.

[comment]: # ({/47163d34-7e4e4a45})

[comment]: # ({35ac3238-3f76ae70})
#### Ausblenden der Datei mit der Liste gängiger Passwörter

Um die Komplexität von Brute-Force-Angriffen auf Passwörter zu erhöhen, wird empfohlen, den Zugriff auf die Datei `ui/data/top_passwords.txt` einzuschränken.
Diese Datei enthält eine Liste der am häufigsten verwendeten und kontextbezogenen Passwörter und verhindert, dass Benutzer solche Passwörter festlegen (wenn der Parameter *Einfache, leicht zu erratende Passwörter vermeiden* in der [Passwortrichtlinie](/manual/web_interface/frontend_sections/users/authentication#internal-authentication) aktiviert ist).

Um den Zugriff auf die Datei `top_passwords.txt` einzuschränken, ändern Sie die Konfiguration Ihres Webservers.

Bei Apache kann der Dateizugriff mithilfe der Datei `.htaccess` eingeschränkt werden:

```ini
<Files "top_passwords.txt">
    Order Allow,Deny
    Deny from all
</Files>
```

Bei NGINX kann der Dateizugriff mithilfe der Direktive `location` eingeschränkt werden:

```ini
location = /data/top_passwords.txt {
    deny all;
    return 404;
}
```

[comment]: # ({/35ac3238-3f76ae70})
