Splunk version gratuite: bloquer l’accès à vos logs

Splunk, outil d’analyse de logs, permet de rassembler les logs de différents serveurs et d’en faire l’analyse via une interface web. Splunk est offert en deux versions, soit en version entreprise et en version gratuite. Certaines fonctionnalités ont toutefois été désactivés de la version gratuite. Le contrôle d’accès (LDAP/Utilisateurs Splunk) est l’une d’entres-elles. En version gratuite, l’interface web n’est donc pas sécurisé.
Ceci dit, il est possible, avec différentes méthodes, de régler ce petit problème. Un moyen simple et efficace est d’utiliser Apache comme proxy. Voici la démarche à suivre…
1. Configuration de Apache
Ajouter les lignes suivante a votre fichier de configuration Apache (httpd.conf)
<virtualhost x.x.x.x:80> ServerAdmin root@localhost
ServerAlias splunk.example.com
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
ErrorLog logs/splunk.example.com-error_log
CustomLog logs/splunk.example.com-access_log common
</virtualhost>
<proxy http://127.0.0.1:8000/*>
Order deny,allow
Deny from all
Allow from all
AuthName « splunk.example.com »
AuthType Basic AuthUserFile /var/www/.htpasswd.users
Require valid-user
</proxy>
Note:
- Changer le x.x.x.x par l’adresse IP de votre serveur
- Remplacer splunk.exemple.com par le nom de votre serveur (nom inscrit dans le DNS)
2. Création du fichier d’accès (.htaccess)
Créer un fichier .htaccess avec l’information suivante dans le répertoire racine de votre application web roulant sur le port 80
AuthName « Utilisateurs autorisés seulement »
AuthType Basic
AuthUserFile /var/www/secret/.htpasswd
require user utilisateur
3. Création du fichier d’authentification
En ligne de commande, taper les commandes suivantes:
cd /var/www/secret/
htpasswd -cs .htpasswd utilisateur
Puis taper à deux reprises un mot de passe
4. Configuration du pare-feu
Ouvrez au pare-feu seulement le port 80 et non le port 8000 comme demandé par l’application Splunk. Apache s’assurera de redigirer le traffic correctement. Redémarrez Apache et voilà!
5. Erreur
Vous utilisez SELinux et obtenez le message d’erreur suivant…
« Service Temporarily Unavailable »
Taper la ligne de commande suivante afin de permettre les scripts et modules HTTPD de se connecter au réseau
/usr/sbin/setsebool httpd_can_network_connect true
BON SPLUNK!