Aquesta secció conté les millors pràctiques a seguir per configurar Zabbix d'una manera segura.
Les pràctiques contingudes aquí no són necessàries per al funcionament de Zabbix. Es recomanen per tindre el sistema més segur.
El principi del mínim privilegi s'ha d'emprar en tot moment a Zabbix. Aquest principi significa que els comptes d'usuari (a la interfície Zabbix) o els usuaris de procés (per al servidor/proxy o agent Zabbix) només tenen privilegis essencials per dur a terme les funcions previstes. En altres paraules, els comptes d'usuari haurien de funcionar amb el mínim de privilegis en tot moment.
Donar permisos addicionals a l'usuari 'zabbix' permetrà accedir als fitxers de configuració i realitzar operacions que poden comprometre la seguretat global de la infraestructura.
Quan s'implementa el principi de privilegis mínims per als comptes d'usuari, s'ha de tindre en compte el tipus d'usuari frontal de Zabbix. És important entendre que, tot i que un tipus d'usuari "Administrador" té menys privilegis que un tipus d'usuari "Super Administrador", sí que té permisos administratius que permeten la gestió de la configuració i l'execució d'scripts personalitzats.
Alguna informació és disponible fins i tot per a usuaris sense privilegis. Per exemple, mentre que Administració → Scripts no és disponible per a administradors que no siguin superadministradors, els scripts es poden recuperar mitjançant l'API Zabbix. S'haurien de limitar els permisos dels scripts i no afegir informació sensible (com ara credencials d'accés, etc.) per evitar l'exposició de la informació sensible disponible als scripts globals.
A la configuració predeterminada, el servidor Zabbix i els processos de l'agent Zabbix comparteixen un usuari "zabbix". Si voleu assegurar-vos que l'agent no pot accedir als detalls sensibles de la configuració del servidor (per exemple, la informació d'inici de sessió de la base de dades), l'agent s'ha d'executar com un usuari diferent:
L'agent de Windows Zabbix compilat amb OpenSSL mirarà de trobar el fitxer de configuració SSL a c:\openssl-64bit. El directori "openssl-64bit" de la unitat C: el poden crear usuaris sense privilegis.
Així, per reforçar la seguretat, cal crear aquest directori manualment i revocar l'accés d'escriptura als usuaris que no són administradors.
Tingueu en compte que els noms dels directoris seran diferents a les versions de Windows de 32 i 64 bits.
A RHEL, instal·leu el paquet mod_ssl:
Creeu un directori per a claus SSL:
Creeu un certificat SSL:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/private/apache-selfsigned.key -out /etc/httpd/ssl/apache-selfsigned.crt
Ompliu les indicacions adequadament. La línia més important és la que demana el Nom Comú. Heu d'introduir el nom de domini que voleu associar al vostre servidor. Podeu introduir l'adreça IP pública si no teniu un nom de domini. Emprarem exemple.com en aquest article.
Nom del país (codi de 2 lletres) [XX]:
Nom de l'estat o província (nom complet) []:
Nom de la localitat (p. ex., ciutat) [Ciutat predeterminada]:
Nom de l'organització (p. ex., empresa) [Empresa predeterminada]:
Nom de la unitat organitzativa (p. ex., secció) []:
Nom comú (per exemple, el vostre nom o el nom d'equip del vostre servidor) []:exemple.com
Correu electrònic []:
Editeu la configuració d'Apache SSL:
/etc/httpd/conf.d/ssl.conf
DocumentRoot "/usr/share/zabbix"
ServerName exemple.com:443
SSLCertificateFile /etc/httpd/ssl/apache-selfsigned.crt
SSLCertificateKeyFile /etc/httpd/ssl/private/apache-selfsigned.key
Reinicieu el servei Apache per aplicar els canvis:
Afegiu l'equip virtual a la configuració d'Apache (/etc/httpd/conf/httpd.conf
) i configureu la redirecció permanent per al document arrel a l'URL SSL de Zabbix. No oblideu substituir exemple.com pel nom real del servidor.
#Afegiu les línies:
<VirtualHost *:*>
ServerName exemple.cat
Redirect permanent / https://exemple.cat
</VirtualHost>
Reinicieu el servei Apache per aplicar les modificacions:
Per protegir la interfície de Zabbix dels atacs de baixada de nivell de protocol, us recomanem que habiliteu la política HSTS al servidor web.
Per exemple, per habilitar la política HSTS per a la vostra interfície Zabbix a la configuració d'Apache:
1. Busqueu l'arxiu de configuració de l'equip virtual: - /etc/httpd/conf/httpd.conf
a sistemes basats en RHEL - /etc/apache2/sites-available/000-default.conf
a Debian/Ubuntu
2. Afegiu la següent directiva a l'arxiu de configuració del vostre equip virtual:
3. Reinicieu el servei Apache per aplicar els canvis:
# A sistemes basats en RHEL:
systemctl restart httpd.service
# A Debian/Ubuntu
systemctl restart httpd.service
Per protegir la interfície de Zabbix contra Cross Site Scripting (XSS), la injecció de dades i atacs similars, us recomanem que activeu la Política de seguretat de contingut al servidor web. Per fer-ho, configureu el servidor web perquè retorni la capçalera HTTP.
La següent configuració de la capçalera del CSP només és per a la instal·lació d'interfície predeterminada de Zabbix i per als casos en què tot el contingut prové del domini del lloc (excepte els subdominis). És possible que calgui una configuració de capçalera CSP diferent si, per exemple, esteu configurant el giny URL per mostrar contingut dels subdominis o dominis externs del lloc, canviant de OpenStreetMap a un altre motor de mapes o afegint CSS o widgets externs.
Per habilitar CSP per a la vostra interfície Zabbix a la configuració d'Apache, seguiu aquestes passes:
1. Localitzeu el fitxer de configuració del vostre host virtual:
/etc/httpd/conf/httpd.conf
a sistemes basats en RHEL/etc/apache2/sites-available/000-default.conf
a Debian/Ubuntu2. Afegiu la directiva següent al fitxer de configuració del vostre host virtual:
<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. Reinicieu el servei Apache per aplicar els canvis:
# A sistemes basats en RHEL:
systemctl restart httpd.service
# A Debian/Ubuntu
systemctl restart apache2.service
Es recomana que desactiveu totes les signatures del servidor web com a part del procés de securització del servidor web. El servidor web exposa la signatura del programari predeterminat:
La signatura es pot desactivar afegint dues línies al fitxer de configuració d'Apache (emprat com a exemple):
La signatura PHP (capçalera X-Powered-By HTTP) es pot desactivar editant el fitxer de configuració php.ini (la signatura és desactivada per defecte):
Cal reiniciar el servidor web perquè els canvis al fitxer de configuració tinguin efecte.
Es pot aconseguir un nivell addicional de seguretat emprant mod_security (paquet libapache2-mod-security2) amb Apache. mod_security permet esborrar la signatura del servidor en lloc d'esborrar només la versió de la signatura del servidor. La signatura es pot canviar a qualsevol valor modificant "SecServerSignature" després d'instal·lar mod_security.
Consulteu la documentació del vostre servidor web per obtindre ajuda sobre com esborrar/modificar signatures de programari.
Es recomana desactivar les pàgines d'error predeterminades per evitar l'exposició de la informació. El servidor web empra les pàgines d'error integrades de manera predeterminada:
Les pàgines d'error predeterminades s'han de substituir/esborrar com a part del procés de securització del servidor web. La directiva "ErrorDocument" es pot emprar per definir una pàgina/text d'error personalitzat per al servidor web Apache (emprat com a exemple).
Consulteu la documentació del vostre servidor web per obtindre ajuda sobre com anul·lar/esborrar les pàgines d'error predeterminades.
Es recomana esborrar la pàgina de prova del servidor web per evitar l'exposició de la informació. Per defecte, l'arrel del servidor web conté una pàgina de prova anomenada index.html (Apache2 a Ubuntu s'empra com a exemple):
La pàgina de prova s'hauria d'esborrar o deixar que no sigui disponible com a part del procés de securització del servidor web.
De manera predeterminada, Zabbix és configurat amb la capçalera HTTP X-Frame-Options establerta a SAMEORIGIN
. Això vol dir que el contingut només es pot carregar en un marc que tingui el mateix origen que la pròpia pàgina.
Els elements d'interfície de Zabbix que extreuen contingut d'URL externs (és a dir, l'URL giny del tauler de control) mostren el contingut recuperat en un sandbox amb totes les restriccions de sandbox activades.
Aquests paràmetres milloren la seguretat de la interfície Zabbix i proporcionen protecció contra atacs XSS i clickjacking. Els usuaris superadministradors poden modificar l'iframe sandboxing i la capçalera de resposta HTTP X-Frame-Options segons calgui. Penseu acuradament els riscos i els beneficis abans de canviar la configuració predeterminada. No es recomana desactivar completament la sandbox o X-Frame-Options.
Per augmentar la complexitat dels atacs de força bruta amb mots de pas, es recomana limitar l'accés al fitxer ui/data/top_passwords.txt
modificant la configuració del servidor web. Aquest fitxer conté una llista dels mots de pas més comuns i específics del context, i s'empra per evitar que els usuaris estableixin aquests mots de pas si la configuració Evitar mots de pas fàcils d'endevinar és activada a la política de seguretat dels mots de pas.
Per exemple, sota NGINX, l'accés als fitxers es pot limitar emprant la directiva "location":
location = /data/top_passwords.txt {
deny all;
return 404;
}
Sota Apache - emprant l'arxiu .htaccess
:
UTF-8 és l'única codificació suportada per Zabbix. Funciona sense cap falla de seguretat. Els usuaris han de ser conscients que hi ha problemes de seguretat si empren algunes de les altres codificacions.
Quan empreu instal·ladors de Windows, es recomana que feu ús dels camins d'accés predeterminats proporcionats per l'instal·lador perquè emprar camins personalitzats sense els permisos adequats podria comprometre la seguretat de la instal·lació.