Table des matières
Cette page est destinée à être une introduction pour l'implémentation d'un niveau d'authentification et de sécurité de serveur plus ardue, concentrée autour de l'interface web CGI.
Il y a de nombreuses façons de personnaliser la sécurité de son serveur de Supervision et l'environnement Nagios. Ce qui va venir ne doit pas être pris comme la finalité de toute approche à la sécurité. Au lieu de cela, considérez ce qui suit comme une introduction à certaines des techniques que vous pouvez utiliser pour gérer la sécurité de votre système. Comme toujours, vous devrez faire vos recherches et utiliser les meilleures techniques disponibles. Traitez votre serveur de Supervision comme si c'était l'élément le plus important dans votre réseau et vous en serez récompensés.
Authentification plus ardue utilisant la technologie Digest . En suivant Le guide de démarrage rapide , il y a de grandes chances pour que vous utilisiez les fondamentaux d'authentification Apache . L'authentification basique envoie en texte clair le nom d'utilisateur et le mot de passe de connexion avec chacune des requêtes http. Considérez que d'utiliser la technologie Digest pour votre authentification s'avère plus sécurisé car elle s'appuie sur un principe de cryptage de clé MD5 lors du passage des requêtes.
Forcer TLS/SSL pour la totalité de votre protocole Web. Apache fournit TLS/SSL par le module mod_ssl. TLS/SSL fournit un tunnel sécurisé entre le client et le serveur ce qui prévient le fait d'écouter indiscrètement et de tripoter la cryptographie publickey/privatekey.
Restreindre les accès à apache. Cette restriction d'accès à Nagios peut être appliquée sur une adresse IP, une plage d'adresse IP ou un sous-réseaux. Si vous avez besoin d'un accès extérieur à votre réseau, vous pouvez utilisez un VPN ou des tunnels SSH
L'implémentation de l'authentification Digest est simple. Vous devez créer un nouveau type de mot de passe en utilisant l'outil htdigest , puis modifiez la configuration apache pour Nagios (par défaut /etc/httpd/conf.d/nagios.conf
).
Créer un nouveau mot de passe en utilisant l'outil htdigest .
#
htdigest -c /usr/local/nagios/etc/.digest_pw "Nagios Access" nagiosadmin
Ensuite, éditer le fichier de configuration apache pour Nagios (typiquement /etc/httpd/conf.d/nagios.conf
) en utilisant l'exemple suivant.
## BEGIN APACHE CONFIG SNIPPET - NAGIOS.CONF ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthType Digest AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/.digest_pw Require valid-user </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> Options None AllowOverride None Order allow,deny Allow from all AuthType Digest AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/.digest_pw Require valid-user </Directory> ## END APACHE CONFIG SNIPPETS
Ensuite, redémarrer le service apache pour que la nouvelle configuration soit prise en compte.
#
/etc/init.d/httpd restart
Vérifiez que vous avez installé apache et openssl. Par défaut, le mod_ssl doit être supporté. Si vous rencontrez encore des problèmes, vous pouvez vous référer à l'aide d'Apache TLS/SSL Documentation sur l'encryptage .
Ensuite, vérifiez que le support TLS/SSL fonctionne en visitant l'interface nagios en utilisant le HTTPS
(https://your.domain/nagios). Si ça fonctionne, vous pouvez passer à l'étape suivante qui consistera à forcer la connexion en HTTPS
et de bloquer toutes connexions via le HTTP
à l'interface Web Nagios. Si vous rencontrez des problèmes, visitez les pages d'apache sur la TLS/SSL Documentation de Cryptage et Google pour des problèmes spécifique à votre installation apache. Ensuite, modifiez la configuration apache pour nagios (par défaut /etc/httpd/conf.d/nagios.conf
) en ajoutant le paramètre SSLRequireSSL
aux deux instructions pour les répertoires sbin
et share
.
## BEGIN APACHE CONFIG SNIPPET - NAGIOS.CONF ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> ... SSLRequireSSL ... </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> ... SSLRequireSSL ... </Directory> ## END APACHE CONFIG SNIPPETS
Redémarrage du service Apache pour que la nouvelle configuration prenne effet.
#
/etc/init.d/httpd restart
L'exemple suivant nous montre comment bloquer l'accès des CGIs Nagios à certaines adresses IP, plages d'adresses ou sous-réseaux en utilisant le contrôle des accès Apache . Modifiez le fichier de configuration apache pour Nagios (par défaut /etc/httpd/conf.d/nagios.conf
) en utilisant les paramètres Allow
, Deny
, et Order
en s'appuyant sur l'exemple ci-dessous.
## BEGIN APACHE CONFIG SNIPPET - NAGIOS.CONF ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> ... AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 10.0.0.25 # Allow single IP addresses Allow from 10.0.0.0/255.255.255.0 # Allow network/netmask pair Allow from 10.0.0.0/24 # Allow network/nnn CIDR spec ... </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> ... AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 10.0.0.25 # Allow single IP addresses Allow from 10.0.0.0/255.255.255.0 # Allow network/netmask pair Allow from 10.0.0.0/24 # Allow network/nnn CIDR spec ... </Directory> ## END APACHE CONFIG SNIPPET
L'authentification Digest envoie les données en clair mais pas votre nom d'utilisateur ni votre mot de passe .
L'authentification par Digest n'est pas totalement compatible avec l'authentification de base .
TLS/SSL a le potentiel pour les attaques man-in-the-middle . Les attaques MITM sont vulnérables si l'attaquant est obligé de s'imisser entre le serveur et le client tout comme une attaque par Phishing, l'ISP monitoring ou LAN un certificat de pare-feu arrivant à expiration. Lire ci-dessus la vérification des certificats !
Le contrôle d'accès apache seulement le protocole HTTP
/HTTPS
. Veuillez vous référer à IPtables pour verrouiller votre système avec des règles de pare-feu.
Très important, la sécurité est un domaine en perpétuel mouvement et demande de se réserver du temps pour la recherche et développement! Peut-être en vous inscrivant aux newsletters comme Security Now! .