Cette section contient les bonnes pratiques à suivre pour configurer Zabbix de manière sécurisée.
Les pratiques expliquées ici ne sont pas obligatoire pour faire fonctionner Zabbix. Elles sont recommandées pour une meilleure sécurité du système.
Dans la configuration par défaut, les processus du serveur et de l'agent Zabbix partage le même utilisateur 'zabbix'. Si vous voulez être sûr que l'agent ne puisse pas accéder à certains détails sensibles de la configuration du serveur (ex : informations de connexion à base de données), l’agent devrait s’exécuter avec un utilisateur différent :
Sur RHEL/Centos, installez le package mod_ssl :
Créez un repertoire pour les clés SSL :
Ajoutez les paramètres SSL :
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:localhost
Email Address []:
Éditez la configuration SSL Apache :
/etc/httpd/conf.d/ssl.conf
DocumentRoot "/usr/share/zabbix"
ServerName localhost:443
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key
Redémarrez le service Apache pour appliquer les changements :
Ajoutez un hôte virtuel à la configuration Apache et définissez une redirection permanente pour le document racine vers l'URL sécurisée de Zabbix. Remplacez localhost par le nom réel du serveur.
/etc/httpd/conf/httpd.conf
#Add lines
<VirtualHost *:*>
ServerName localhost
Redirect permanent / http://localhost
</VirtualHost>
Redémarrez le service Apache pour appliquer les modifications :
Il est recommandé de désactiver toutes les signatures de serveur Web dans le cadre du processus de renforcement du serveur Web. Le serveur Web expose la signature logicielle par défaut :
La signature peut être désactivée en ajoutant deux lignes au fichier de configuration Apache (utilisé comme exemple) :
La signature PHP (X-Powered-By HTTP header) peut être désactivée en changeant le fichier de configuration php.ini (la signature est désactivée par défaut) :
Le redémarrage du serveur Web est obligatoire pour qur les changements dans le fichier de configuration soient appliqués.
Un niveau de sécurité supplémentaire peut être atteint en utilisant le mod_security (package libapache2-mod-security2) avec Apache. mod_security permet de supprimer la signature du serveur au lieu de supprimer uniquement la version de la signature du serveur. La signature peut être modifiée en n'importe quelle valeur en changeant "SecServerSignature" après l'installation de mod_security.
Reportez-vous à la documentation de votre serveur Web pour obtenir de l'aide sur la suppression/modification des signatures logicielles.
Il est recommandé de désactiver les pages d'erreur par défaut pour éviter toute exposition d'informations. Le serveur Web utilise par défaut les pages d'erreur intégrées :
Les pages d'erreur par défaut doivent être remplacées/supprimées dans le cadre du processus de renforcement du serveur Web. La directive "ErrorDocument" peut être utilisée pour définir une page/texte d'erreur personnalisé pour le serveur web Apache (utilisé comme exemple).
Reportez-vous à la documentation de votre serveur Web pour obtenir de l'aide sur la façon de remplacer/supprimer les pages d'erreur par défaut.
Il est recommandé de supprimer la page de test du serveur Web pour éviter toute exposition d'informations. Par défaut, le webroot du serveur web contient une page de test appelée index.html (Apache2 sur Ubuntu est utilisé comme exemple) :
La page de test doit être supprimée ou doit être rendue indisponible dans le cadre du processus de renforcement du serveur Web.