Kibana mit Nginx schützen: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „=== '''Symptom''' === Kibana ist ein Bestandteil des ELK Stacks und erlaubt die einfache Visualisierung Ihrer Indices in Elas-ticsearch.<br /> Leider ist der Z…“)
 
(Ursache und Lösung)
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
 
Kibana ist ein Bestandteil des ELK Stacks und erlaubt die einfache Visualisierung Ihrer Indices in Elas-ticsearch.<br />
 
Kibana ist ein Bestandteil des ELK Stacks und erlaubt die einfache Visualisierung Ihrer Indices in Elas-ticsearch.<br />
 
Leider ist der Zugriff in der Applikation abzusichern und somit benötigen wir einen Reverse Proxy wie Nginx<br />
 
Leider ist der Zugriff in der Applikation abzusichern und somit benötigen wir einen Reverse Proxy wie Nginx<br />
um den Zugriff einzuschränken.<br /><br />
+
um den Zugriff einzuschränken.
  
 
=== '''Ursache und Lösung''' ===
 
=== '''Ursache und Lösung''' ===
Zeile 12: Zeile 12:
 
# mkdir /etc/nginx/ssl<br />
 
# mkdir /etc/nginx/ssl<br />
 
<br />
 
<br />
Nun schreiben wir unsere Konfiguration in /etc/nginx/sites-enabled/kibana.conf. Zertifikate sollten Sie über<br /> eine eigene PKI erstellen. Wir verwenden dazu eine dedizierte OPNsense, erstellen Root Zertifikat sowie Zertifikat für unseren Server.<br />
+
Nun schreiben wir unsere Konfiguration in /etc/nginx/sites-enabled/kibana.conf. Zertifikate sollten Sie über eine eigene PKI erstellen. Wir verwenden dazu eine dedizierte OPNsense, erstellen Root Zertifikat sowie Zertifikat für unseren Server. In die conf schreiben wir Platzhalter immer in <>, diese '''ersetzen''' Sie dann mit '''Ihren Werten''':<br />
In die conf schreiben wir Platzhalter immer in <>, diese '''ersetzen''' Sie dann mit '''Ihren Werten''':<br />
+
 
<br />
+
  server {<br />
server {<br />
+
    listen      <IP>:443 ssl;<br />
  listen      <IP>:443 ssl;<br />
+
    server_name  <host.domain.com>;<br />
  server_name  <host.domain.com>;<br />
+
    ssl on;<br />
  ssl on;<br />
+
    ssl_certificate          /etc/nginx/certs/syslog.crt;<br />
  ssl_certificate          /etc/nginx/certs/syslog.crt;<br />
+
    ssl_certificate_key      /etc/nginx/certs/syslog.key;<br />
  ssl_certificate_key      /etc/nginx/certs/syslog.key;<br />
+
    ssl_trusted_certificate  /etc/nginx/certs/ca.crt;<br />
  ssl_trusted_certificate  /etc/nginx/certs/ca.crt;<br />
+
    ssl_protocols            TLSv1.2;<br />
  ssl_protocols            TLSv1.2;<br />
+
    ssl_prefer_server_ciphers on;<br />
  ssl_prefer_server_ciphers on;<br />
+
    auth_basic_user_file      "/etc/nginx/kibana.passwd";<br />
  auth_basic_user_file      "/etc/nginx/kibana.passwd";<br />
+
    access_log            /var/log/nginx/kibana.access.log combined;<br />
  access_log            /var/log/nginx/kibana.access.log combined;<br />
+
    error_log            /var/log/nginx/kibana.error.log;<br />
  error_log            /var/log/nginx/kibana.error.log;<br />
+
    <br />
  <br />
+
    location / {<br />
  location / {<br />
+
      proxy_pass            http://localhost:5601;<br />
    proxy_pass            http://localhost:5601;<br />
+
      proxy_set_header      Host $host;<br />
    proxy_set_header      Host $host;<br />
+
      proxy_set_header      X-Real-IP $remote_addr;<br />
    proxy_set_header      X-Real-IP $remote_addr;<br />
+
      proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;<br />
    proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;<br />
+
      proxy_set_header      Proxy "";<br />
    proxy_set_header      Proxy "";<br />
+
    }<br />
 
   }<br />
 
   }<br />
}<br />
+
 
<br />
 
 
Abschließend erstellen wir noch die '''htpasswd Datei''' und legen einen User an:<br />
 
Abschließend erstellen wir noch die '''htpasswd Datei''' und legen einen User an:<br />
 
# htpasswd -c /etc/nginx/kibana.passwd kibana<br />
 
# htpasswd -c /etc/nginx/kibana.passwd kibana<br />
Zeile 44: Zeile 43:
 
<br />
 
<br />
 
Sie erreichen Ihr Kibana (inkl. Passwortauthentifizierung) jetzt unter:<br />
 
Sie erreichen Ihr Kibana (inkl. Passwortauthentifizierung) jetzt unter:<br />
'''https://host.domain.com''' <br />
+
'''https://host.domain.com'''
<br />
+
 
 
=== '''Tags''' ===
 
=== '''Tags''' ===
 
Kibana Passwort Nginx ELK Elastic Stack Elasticsearch Authentifzierung<br /><br />
 
Kibana Passwort Nginx ELK Elastic Stack Elasticsearch Authentifzierung<br /><br />
  
 
=== '''Weiterführende Informationen''' ===
 
=== '''Weiterführende Informationen''' ===
Mehr Informationen finden Sie unter [https://www.max-it.de/ www.max-it.de]<br /><br />
+
Mehr Informationen finden Sie unter [https://www.max-it.de/ www.max-it.de].<br /><br />
  
 
=== '''Kontakt''' ===
 
=== '''Kontakt''' ===
 
Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben,<br />
 
Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben,<br />
melden Sie sich bitte bei uns unter [http://mailto:vertrieb@max-it.de Vertrieb@max-it.de].<br />
+
melden Sie sich bitte bei uns unter [http://mailto:techcorner@max-it.de TechCorner@max-it.de].  
  
 
[[Kategorie: IT-Security]]
 
[[Kategorie: IT-Security]]

Version vom 13. Mai 2020, 08:39 Uhr

Symptom

Kibana ist ein Bestandteil des ELK Stacks und erlaubt die einfache Visualisierung Ihrer Indices in Elas-ticsearch.
Leider ist der Zugriff in der Applikation abzusichern und somit benötigen wir einen Reverse Proxy wie Nginx
um den Zugriff einzuschränken.

Ursache und Lösung

Im Folgenden beschreiben wir kurz wie man einen bestehenden ELK Server unter Debian 10 mit Nginx erweitert.

Nginx installieren:

  1. apt update
  2. apt install nginx apache2-utils
  3. mkdir /etc/nginx/ssl


Nun schreiben wir unsere Konfiguration in /etc/nginx/sites-enabled/kibana.conf. Zertifikate sollten Sie über eine eigene PKI erstellen. Wir verwenden dazu eine dedizierte OPNsense, erstellen Root Zertifikat sowie Zertifikat für unseren Server. In die conf schreiben wir Platzhalter immer in <>, diese ersetzen Sie dann mit Ihren Werten:

 server {
listen <IP>:443 ssl;
server_name <host.domain.com>;
ssl on;
ssl_certificate /etc/nginx/certs/syslog.crt;
ssl_certificate_key /etc/nginx/certs/syslog.key;
ssl_trusted_certificate /etc/nginx/certs/ca.crt;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
auth_basic_user_file "/etc/nginx/kibana.passwd";
access_log /var/log/nginx/kibana.access.log combined;
error_log /var/log/nginx/kibana.error.log;

location / {
proxy_pass http://localhost:5601;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
}
}

Abschließend erstellen wir noch die htpasswd Datei und legen einen User an:

  1. htpasswd -c /etc/nginx/kibana.passwd kibana


Zum Schluss nur noch den Dienst neustarten, und schon kann es losgehen:

  1. service nginx restart


Sie erreichen Ihr Kibana (inkl. Passwortauthentifizierung) jetzt unter:
https://host.domain.com

Tags

Kibana Passwort Nginx ELK Elastic Stack Elasticsearch Authentifzierung

Weiterführende Informationen

Mehr Informationen finden Sie unter www.max-it.de.

Kontakt

Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben,
melden Sie sich bitte bei uns unter TechCorner@max-it.de.