1 Controllo degli accessi
Panoramica
Questa sezione contiene le best practices per impostare il controllo degli accessi in modo sicuro.
Principio dei privilegi minimi
Gli account utente dovrebbero sempre essere eseguiti con il minor numero possibile di privilegi. Ciò significa che gli account utente nel frontend di Zabbix, gli utenti del database o l'utente per i processi server/proxy/agente Zabbix dovrebbero avere solo i privilegi essenziali per l'esecuzione delle funzioni previste.
Concedere privilegi aggiuntivi all'utente 'zabbix' gli consentirà di accedere ai file di configurazione ed eseguire operazioni che possono compromettere la sicurezza dell'infrastruttura.
Quando si configurano i privilegi degli account utente, è necessario considerare i tipi di utente frontend di Zabbix. Si noti che, sebbene il tipo di utente Admin abbia meno privilegi del tipo di utente Super Admin, può comunque gestire la configurazione ed eseguire script personalizzati.
Alcune informazioni sono disponibili anche per gli utenti senza privilegi. Ad esempio, mentre Avvisi → Script è disponibile solo per gli utenti Super Admin, gli script possono essere recuperati anche tramite l'API Zabbix. In questo caso, limitare i permessi degli script ed escludere informazioni sensibili dagli script (ad esempio, le credenziali di accesso) può aiutare a evitare di esporre informazioni sensibili disponibili negli script globali.
Utente sicuro per Zabbix agent
Per impostazione predefinita, i processi di Zabbix server, proxy e agent (o agent 2) condividono un unico utente zabbix.
Per impedire a Zabbix agent/agent 2 (in esecuzione sulla stessa macchina di server/proxy) di accedere a dettagli sensibili nella configurazione di server/proxy (ad esempio, le credenziali del database), l'agent deve essere eseguito con un utente diverso:
Per Zabbix agent:
- Creare un gruppo e utente sicuri (ad esempio,
zabbix-agent). - Impostare questo utente nel parametro User del file di configurazione dell'agent.
- Riavviare l'agent per abbandonare i privilegi e passare al nuovo utente.
Per Zabbix agent 2, la configurazione deve essere applicata a livello di service, perché il file di configurazione di agent 2 non supporta il parametro User.
Per un esempio, vedere ZBX-26442.
Revocare l'accesso in scrittura alla configurazione SSL (Windows)
Se hai compilato Zabbix agent su Windows con OpenSSL situato in una directory non protetta (ad esempio C:\zabbix, c:\openssl-64bit, C:\OpenSSL-Win64-111-static o C:\dev\openssl), assicurati di revocare l'accesso in scrittura a questa directory per gli utenti non amministratori.
In caso contrario, l'agent caricherà le impostazioni SSL da un percorso che può essere modificato da utenti senza privilegi, con conseguente potenziale vulnerabilità di sicurezza.
Rafforzamento della sicurezza dei componenti Zabbix
Alcune funzionalità possono essere disattivate per rafforzare la sicurezza dei componenti Zabbix:
- l'esecuzione di script globali sul server Zabbix può essere disabilitata impostando EnableGlobalScripts=0 nella configurazione del server;
- l'esecuzione di script globali sul proxy Zabbix è disabilitata per impostazione predefinita (può essere abilitata impostando EnableRemoteCommands=1 nella configurazione del proxy);
- l'esecuzione di script globali su Zabbix agent è disabilitata per impostazione predefinita (può essere abilitata aggiungendo un parametro AllowKey=system.run[<command>,*] per ogni comando consentito nella configurazione dell'agente);
- l'autenticazione HTTP dell'utente può essere disabilitata impostando
$ALLOW_HTTP_AUTH=falsenel file di configurazione del frontend (zabbix.conf.php). Si noti che la reinstallazione del frontend (eseguendo setup.php) rimuoverà questo parametro.
Accesso ai percorsi UNC su Windows da parte di Zabbix agent
Gli agent Zabbix su Windows seguono i percorsi UNC (condivisioni SMB come \\server\share\file.txt) negli item come vfs.file.*, vfs.dir.*, modbus.get e perf_counter*. In alcuni contesti questo può rappresentare un rischio per la sicurezza.
Quando a Windows viene richiesto di accedere a un percorso UNC, tenta di autenticarsi su quel server. Ciò significa che una richiesta malevola a Zabbix agent può esporre l'hash NTLM al server del richiedente. Se necessario, gli utenti possono mitigare questo rischio con i parametri di configurazione AllowKey e DenyKey.