Den Splunk Server absichern
Die kostenlose Version des Splunk Server bietet leider nicht die Möglichkeit das Webinterface mit einem Passwortschutz zu versehen. Da ich meine Log Nachrichten aber nicht der ganzen Welt präsentieren möchte, musste eine Lösung her. Was sich sofort anbietet ist natürlich einfach einen Reverse Proxy vor den Splunk Server zu setzen und den Proxy für die Authentifizierung zu benutzen. Und weil das so einfach ist, hab ich mich auch dafür entschieden. Die zwei offensichtlichen Lösungen sind Squid oder Apache, wobei ich mich einfach aus dem Bauch raus für Apache entschieden habe. Außerdem war eh schon ein Apache Server (2.0.x) auf dem System installiert. Folgende Schritte sind notwendig, um den Apache Server als Reverses Proxy mit Authentifizierung vor den Splunk Server zu setzen:
Laden der Proxy Module: In der httpd.conf folgende Direktiven hinzufügen:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
Die Module aktivieren: In der httpd.conf eine Proxy Direktive erstellen:
<IfModule mod_proxy.c> ProxyRequests Off <Proxy *> Order deny,allow Allow from all AuthUserFile /path/to/htpasswd AuthType Basic AuthName "Splunk" Require valid-user </Proxy> ProxyPass / http://localhost:8000/ ProxyPassReverse / http://localhost:8000/ </ifModule>
Der Splunk Server läuft in diesem Beispiel auf dem selben Host (Port 8000), wie der Apache Server, deshalb benutze ich localhost:8000 als Ziel der Anfragen. Übrigens: Der Slash am Ende der URL ist nicht optional, lässt man ihn weg, werden die Requests nicht korrekt übersetzt.
Eine htpasswd Datei mit entsprechenden User-Accounts erstellen:
htpasswd -c /path/to/htpasswd splunk-user
Die Option -c erstellt eine neue Datei, ist schon eine Datei vorhanden, einfach weglassen. Im Beispiel wird ein User mit dem Namen splunk-user hinzugefügt.
Natürlich können Splunk und Proxy Server sowohl auf dem selben Server, als auch auf unterschiedlichen Servern laufen. Die Anpassung der Konfigurations-Beispiele sollte minimal sein.
Mehr zum Thema Splunk gibt es in meinem ersten Eintrag über Splunk.
Hi,
danke für deine Anleitung.
Mit iptables kann jetzt noch der direkte Zugriff gesperrt werden:
iptables -A INPUT -p tcp --dport 8000 -s 127.0.0.1/32 -j ACCEPT
iptables -A INPUT -p udp --dport 8000 -s 127.0.0.1/32 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
iptables -A INPUT -p udp --dport 8000 -j DROP
Viele Grüße,
Dennis
Geschrieben von Dennis 2 Jahre, 2 Monate nach Veröffentlichung des Blog-Eintrags am 14. April 2009, 12:50. Antworten