[comment]: # translation:outdated

[comment]: # ({b5ee9cfc-7ef4b2b9})
# 2 Best practices voor veilige Zabbix-installatie

[comment]: # ({/b5ee9cfc-7ef4b2b9})

[comment]: # ({0bf6833f-b9719f19})
### Overzicht

Deze sectie bevat de beste praktijken die gevolgd moeten worden om Zabbix op een veilige manier op te zetten.

De hier vermelde praktijken zijn niet vereist voor de werking van Zabbix. Ze worden aanbevolen voor een betere beveiliging van het systeem.

[comment]: # ({/0bf6833f-b9719f19})

[comment]: # ({4fc29cb0-cebf8306})
### Toegangscontrole

[comment]: # ({/4fc29cb0-cebf8306})

[comment]: # ({2e580f77-dc572a02})
#### Het principe van minimale rechten

Het principe van minimale rechten moet te allen tijde worden toegepast bij Zabbix.
Dit principe betekent dat gebruikersaccounts (in de Zabbix frontend) of procesgebruikers (voor Zabbix-server/proxy of agent) alleen die rechten hebben die essentieel zijn voor het uitvoeren van beoogde functies. Met andere woorden, gebruikersaccounts moeten te allen tijde worden uitgevoerd met zo min mogelijk rechten.

::: noteimportant
Het geven van extra rechten aan het 'zabbix'-gebruiker zal
het in staat stellen om toegang te krijgen tot configuratiebestanden en bewerkingen uit te voeren die de algehele beveiliging van de infrastructuur kunnen compromitteren.
:::

Bij het implementeren van het principe van minimale rechten voor gebruikersaccounts,
moeten [frontend gebruikerstypen](/manual/config/users_and_usergroups/permissions) in Zabbix in aanmerking worden genomen. Het is belangrijk om te begrijpen dat hoewel een gebruikerstype "Admin" minder rechten heeft dan het gebruikerstype "Super Admin", het wel administratieve rechten heeft waarmee configuraties kunnen worden beheerd en aangepaste scripts kunnen worden uitgevoerd.

::: noteclassic
Sommige informatie is zelfs beschikbaar voor niet-bevoorrechte gebruikers.
Bijvoorbeeld, hoewel *Alerts* → *Scripts* niet beschikbaar is voor
niet-Super Admins, zijn de scripts zelf beschikbaar voor ophalen via
de Zabbix API. Het beperken van scriptrechten en het niet toevoegen van gevoelige informatie (zoals toegangscertificaten, etc.) moet worden gebruikt om blootstelling van gevoelige informatie die beschikbaar is in globale
scripts te vermijden.
:::

[comment]: # ({/2e580f77-dc572a02})

[comment]: # ({1631be73-1631be73})
#### Veilige gebruiker voor Zabbix-agent

In de standaardconfiguratie delen Zabbix-server- en Zabbix-agent-processen één 'zabbix'-gebruiker. Als u wilt zorgen dat de agent geen toegang heeft tot gevoelige gegevens in de serverconfiguratie (bijvoorbeeld inloggegevens voor de database), moet de agent worden uitgevoerd als een andere gebruiker:

1.  Maak een veilige gebruiker aan.
2.  Specificeer deze gebruiker in het [configuratiebestand van de agent](/manual/appendix/config/zabbix_agentd) (parameter 'User').
3.  Herstart de agent met beheerdersrechten. De rechten zullen worden overgedragen naar de opgegeven gebruiker.

[comment]: # ({/1631be73-1631be73})

[comment]: # ({2529a034-c02c850f})
#### Schrijftoegang tot SSL-configuratiebestand intrekken in Windows

De Zabbix Windows-agent die is gecompileerd met OpenSSL, probeert toegang te krijgen tot het SSL-configuratiebestand in c:\\openssl-64bit. De map "openssl-64bit" op schijf C: kan worden aangemaakt door niet-bevoegde gebruikers.

Dus voor het beveiligen van de beveiliging is het nodig om deze map handmatig aan te maken en de schrijftoegang voor niet-beheerdersgebruikers in te trekken.

Houd er rekening mee dat de mappennamen verschillend zullen zijn op 32-bits en 64-bits versies van Windows.

[comment]: # ({/2529a034-c02c850f})

[comment]: # ({5dd6aee8-6cfe5a3b})
### Cryptografie

[comment]: # ({/5dd6aee8-6cfe5a3b})

[comment]: # ({d6fecf02-f8f5054e})
#### SSL instellen voor Zabbix frontend

Op RHEL, installeer het mod\_ssl-pakket:

    dnf install mod_ssl

Maak een map aan voor SSL-sleutels:

    mkdir -p /etc/httpd/ssl/private
    chmod 700 /etc/httpd/ssl/private

Maak een SSL-certificaat aan:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/private/apache-selfsigned.key -out /etc/httpd/ssl/apache-selfsigned.crt

Vul de prompts passend in. De belangrijkste regel is degene
die om de Common Name vraagt. U moet de domeinnaam invoeren die
u met uw server wilt associëren. Als u geen domeinnaam heeft, kunt u in plaats daarvan het openbare IP-adres invoeren. We zullen
*example.com* in dit artikel gebruiken.

    Landcode (tweeletterige code) [XX]:
    Naam van provincie of staat (volledige naam) []:
    Plaatsnaam (bijv. stad) [Default City]:
    Organisatienaam (bijv. bedrijf) [Default Company Ltd]:
    Naam van organisatie-eenheid (bijv. sectie) []:
    Common Name (bijv. uw naam of de hostnaam van uw server) []:example.com
    E-mailadres []:

Bewerk Apache SSL-configuratie:

    /etc/httpd/conf.d/ssl.conf

    DocumentRoot "/usr/share/zabbix"
    ServerName example.com:443
    SSLCertificateFile /etc/httpd/ssl/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/httpd/ssl/private/apache-selfsigned.key

Herstart de Apache-service om de wijzigingen toe te passen:

    systemctl restart httpd.service

[comment]: # ({/d6fecf02-f8f5054e})

[comment]: # ({bfaa999a-40cfdec2})
### Verharding van de webserver

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

[comment]: # ({bb3706f4-bb3706f4})
#### Zabbix inschakelen op de hoofdmap van de URL

Voeg een virtuele host toe aan de Apache-configuratie en stel een permanente omleiding in voor de document root naar de Zabbix SSL-URL. Vergeet niet *example.com* te vervangen door de werkelijke naam van de server.

    /etc/httpd/conf/httpd.conf

    #Voeg de volgende regels toe

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

Herstart de Apache-service om de wijzigingen toe te passen:

    systemctl restart httpd.service

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

[comment]: # ({c7ee0bb2-c7ee0bb2})
#### HTTP Strict Transport Security (HSTS) inschakelen op de webserver

Om Zabbix frontend te beschermen tegen aanvallen waarbij het protocol wordt gedowngraded, raden we aan om een [HSTS](https://nl.wikipedia.org/wiki/HTTP_Strict_Transport_Security) (HTTP Strict Transport Security) beleid in te schakelen op de webserver.

Bijvoorbeeld, om het HSTS-beleid in te schakelen voor je Zabbix frontend in de Apache-configuratie:

    /etc/httpd/conf/httpd.conf

voeg de volgende opdracht toe aan de configuratie van je virtuele host:

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

Herstart de Apache-service om de wijzigingen toe te passen:

    systemctl restart httpd.service

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

[comment]: # ({new-0aad5c50})
#### Enabling Content Security Policy (CSP) on the web server

To protect Zabbix frontend against Cross Site Scripting (XSS), data injection, and similar attacks, we recommend enabling Content Security Policy on the web server.
To do so, configure the web server to return the [HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy).

::: noteimportant
The following CSP header configuration is only for the default Zabbix frontend installation and for cases when all content originates from the site's domain (excluding subdomains).
A different CSP header configuration may be required if you are, for example, configuring the [*URL*](/manual/web_interface/frontend_sections/dashboards/widgets/url) widget to display content from the site's subdomains or external domains, switching from *OpenStreetMap* to another map engine, or adding external CSS or widgets.
:::

To enable CSP for your Zabbix frontend in Apache configuration, follow these steps:

1\. Locate your virtual host's configuration file:

-   `/etc/httpd/conf/httpd.conf` on RHEL-based systems
-   `/etc/apache2/sites-available/000-default.conf` on Debian/Ubuntu

2\. Add the following directive to your virtual host's configuration file:

```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\. Restart the Apache service to apply the changes:

```bash
# On RHEL-based systems:
systemctl restart httpd.service

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

[comment]: # ({/new-0aad5c50})

[comment]: # ({cd09dcd1-cd09dcd1})
#### Uitschakelen van blootstelling van webserverinformatie

Het wordt aanbevolen om als onderdeel van het verhardingsproces van de webserver alle webserverhandtekeningen uit te schakelen. De webserver geeft standaard een softwarehandtekening weer:

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

De handtekening kan worden uitgeschakeld door twee regels toe te voegen aan het configuratiebestand van Apache (als voorbeeld gebruikt):

    ServerSignature Uit
    ServerTokens Prod

De PHP-handtekening (X-Powered-By HTTP-header) kan worden uitgeschakeld door het php.ini-configuratiebestand te wijzigen (de handtekening is standaard uitgeschakeld):

    expose_php = Uit

Voor configuratiewijzigingen in het configuratiebestand is het vereist om de webserver opnieuw te starten.

Er kan een extra beveiligingsniveau worden bereikt door gebruik te maken van mod\_security (pakket libapache2-mod-security2) met Apache. mod\_security maakt het mogelijk om de serverhandtekening te verwijderen in plaats van alleen de versie uit de serverhandtekening te verwijderen. De handtekening kan worden gewijzigd in elke gewenste waarde door "SecServerSignature" te veranderen in een gewenste waarde nadat mod\_security is geïnstalleerd.

Raadpleeg de documentatie van uw webserver om hulp te vinden bij het verwijderen/wijzigen van softwarehandtekeningen.

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

[comment]: # ({720052da-720052da})
#### Uitschakelen van standaard webserverfoutpagina's

Het wordt aanbevolen om standaard foutpagina's uit te schakelen om informatieblootstelling te voorkomen. De webserver gebruikt standaard ingebouwde foutpagina's:

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

Standaard foutpagina's moeten worden vervangen/verwijderd als onderdeel van het proces van het verharden van de webserver. De "ErrorDocument"-richtlijn kan worden gebruikt om een aangepaste foutpagina/tekst te definiëren voor de Apache-webserver (als voorbeeld gebruikt).

Raadpleeg de documentatie van je webserver voor hulp bij het vervangen/verwijderen van standaardfoutpagina's.

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

[comment]: # ({ba1547c0-ba1547c0})
#### Verwijderen van de webserver testpagina

Het wordt aanbevolen om de webserver testpagina te verwijderen om informatieblootstelling te voorkomen. Standaard bevat de webroot van de webserver een testpagina genaamd index.html (Apache2 op Ubuntu wordt hier als voorbeeld gebruikt):

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

De testpagina moet worden verwijderd of ontoegankelijk worden gemaakt als onderdeel van het proces om de webserver te beveiligen.

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

[comment]: # ({40b3df0d-7e4e4a45})
#### Stel de X-Frame-Options HTTP-responsheader in

Standaard is Zabbix geconfigureerd met de *X-Frame-Options HTTP-responsheader* ingesteld op `SAMEORIGIN`, wat betekent dat inhoud alleen kan worden geladen in een frame met dezelfde oorsprong als de pagina zelf.

Zabbix frontend-elementen die inhoud ophalen van externe URL's (namelijk, de URL [dashboard widget](/manual/web_interface/frontend_sections/dashboards/widgets/url)) tonen de opgehaalde inhoud in een zandbak met alle beperkingen van de zandbak ingeschakeld.

Deze instellingen verbeteren de beveiliging van de Zabbix frontend en bieden bescherming tegen XSS- en clickjacking-aanvallen. Superbeheerders kunnen de parameters voor *iframe sandboxing* en *X-Frame-Options HTTP-responsheader* [wijzigen](/manual/web_interface/frontend_sections/administration/general#security) zoals nodig. Weeg de risico's en voordelen zorgvuldig af voordat u de standaardinstellingen wijzigt. Het volledig uitschakelen van sandboxing of X-Frame-Options wordt niet aanbevolen.

[comment]: # ({/40b3df0d-7e4e4a45})

[comment]: # ({f5e67e18-3f76ae70})
#### Het verbergen van het bestand met de lijst van veelvoorkomende wachtwoorden

Om de complexiteit van aanvallen op wachtwoord-brute force te vergroten, wordt voorgesteld om de toegang tot het bestand `ui/data/top_passwords.txt` te beperken door de configuratie van de webserver aan te passen. Dit bestand bevat een lijst van de meest voorkomende en contextspecifieke wachtwoorden, en wordt gebruikt om gebruikers te weerhouden dergelijke wachtwoorden in te stellen als de parameter *Vermijd gemakkelijk te raden wachtwoorden* is ingeschakeld in het [wachtwoordbeleid](/manual/web_interface/frontend_sections/users/authentication#internal_authentication).

Bijvoorbeeld bij NGINX kan toegang tot het bestand worden beperkt door gebruik te maken van de `location`-directive:

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

Bij Apache kan dit worden gedaan met behulp van een `.htaccess`-bestand:

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

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

[comment]: # ({b57e9136-40e70f9e})
### UTF-8-codering

UTF-8 is de enige codering die door Zabbix wordt ondersteund. Het staat bekend om zijn probleemloze werking zonder enige beveiligingsproblemen. Gebruikers dienen zich ervan bewust te zijn dat er bekende beveiligingsproblemen zijn bij het gebruik van sommige andere coderingen.

[comment]: # ({/b57e9136-40e70f9e})

[comment]: # ({55965c98-62eeb2ec})
### Paden van Windows-installatieprogramma's
Bij het gebruik van Windows-installatieprogramma's wordt aanbevolen om de standaard paden te gebruiken die door het installatieprogramma worden geboden. Het gebruik van aangepaste paden zonder de juiste rechten kan de beveiliging van de installatie in gevaar brengen.

[comment]: # ({/55965c98-62eeb2ec})

[comment]: # ({7c192639-ba0d4036})

### Zabbix Security Advisories and CVE database

See [Zabbix Security Advisories and CVE database](https://www.zabbix.com/security_advisories).

[comment]: # ({/7c192639-ba0d4036})
