2 Bones pràctiques per la configuració securitzada de Zabbix

Vista general

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.

Control d'accés

Principi de privilegi mínim

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.

Usuari securitzat per l'agent Zabbix

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:

  1. Creeu un usuari segur
  2. Especifiqueu aquest usuari a l'agent fitxer de configuració (paràmetre "Usuari")
  3. Reinicieu l'agent amb privilegis d'administrador. Els privilegis seran cedits a l'usuari especificat.

Revocar l'accés d'escriptura al fitxer de configuració SSL a Windows

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.

Criptografia

Configuració d'SSL per a la interfície Zabbix

A RHEL, instal·leu el paquet mod_ssl:

 dnf install mod_ssl

Creeu un directori per a claus SSL:

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

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:

systemctl restart httpd.service

Securització del servidor Web

Activació de Zabbix sota un directori root de l'URL

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:

systemctl restart httpd.service

Activar HTTP Strict Transport Security (HSTS) al servidor web

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.confa sistemes basats en RHEL - /etc/apache2/sites-available/000-default.confa Debian/Ubuntu

2. Afegiu la següent directiva a l'arxiu de configuració del vostre equip virtual:

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

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

Habilitació de la política de seguretat de contingut (CSP) al servidor web

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/Ubuntu

2. 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

Desactivar de l'exposició de la informació del servidor web

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):

     ServerSignature Off
            ServerTokens Prod

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):

     expose_php= Off

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.

Desactivar de les pàgines d'error predeterminades del servidor web

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.

Esborrar la pàgina de prova del servidor web

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.

Establir la capçalera de resposta HTTP X-Frame-Options

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.

Amagar l'arxiu amb la llista de mots de pas comuns

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:

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

Codificació UTF-8

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.

Rutes d'instal·lació sota Windows

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ó.

Avís de seguretat Zabbix i base de dades CVE

Veieu avís de seguretat Zabbix i base de dades CVE.