Kibana mit Nginx schützen: Unterschied zwischen den Versionen

Aus maxTechCorner
Keine Bearbeitungszusammenfassung
Wamu (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
=== '''Herausforderung''' ===
{{Steckbrief
Kibana ist ein Bestandteil des ELK Stacks und erlaubt die einfache Visualisierung Ihrer Indices in Elas-ticsearch.<br />
| gilt_fuer  = ELK-Stack (Kibana), Nginx unter Debian/Linux
Leider ist der Zugriff in der Applikation abzusichern und somit benötigen wir einen Reverse Proxy wie Nginx<br />
| bereich    = IT-Security
um den Zugriff einzuschränken.
| dauer      = ca. 20 Minuten
| rechte      = root
| stand      = September 2026
}}
Kibana ist Teil des ELK-Stacks und visualisiert die in Elasticsearch abgelegten Indizes. Kibana selbst bringt in der Basiskonfiguration keinen ausreichenden Zugriffsschutz mit – deshalb stellt man einen '''Reverse Proxy''' wie Nginx davor, der den Zugriff per TLS und Passwort absichert. Dieser Artikel zeigt, wie man einen bestehenden ELK-Server (hier Debian 10) mit Nginx erweitert.


=== '''Ursache und Lösung''' ===
== Nginx installieren ==
Im Folgenden beschreiben wir kurz wie man einen bestehenden ELK Server unter Debian 10 mit Nginx erweitert.<br />
<syntaxhighlight lang="bash">
<br />
apt update
'''Nginx installieren''':<br />
apt install nginx apache2-utils
# apt update<br />
mkdir /etc/nginx/ssl
# apt install nginx apache2-utils<br />
</syntaxhighlight>
# mkdir /etc/nginx/ssl<br />
<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 />


  server {<br />
== Nginx als Reverse Proxy konfigurieren ==
     listen      <IP>:443 ssl;<br />
Die Konfiguration wird nach <code>/etc/nginx/sites-enabled/kibana.conf</code> geschrieben. Zertifikate sollten über eine eigene PKI erstellt werden – hier über eine dedizierte OPNsense (Root-Zertifikat sowie Server-Zertifikat). Platzhalter in spitzen Klammern <code>&lt;…&gt;</code> durch die '''eigenen Werte''' ersetzen:
     server_name  <host.domain.com>;<br />
<syntaxhighlight lang="nginx">
     ssl on;<br />
server {
     ssl_certificate          /etc/nginx/certs/syslog.crt;<br />
     listen      <IP>:443 ssl;
     ssl_certificate_key      /etc/nginx/certs/syslog.key;<br />
     server_name  <host.domain.com>;
     ssl_trusted_certificate  /etc/nginx/certs/ca.crt;<br />
     ssl on;
     ssl_protocols            TLSv1.2;<br />
     ssl_certificate          /etc/nginx/certs/syslog.crt;
     ssl_prefer_server_ciphers on;<br />
     ssl_certificate_key      /etc/nginx/certs/syslog.key;
     auth_basic_user_file      "/etc/nginx/kibana.passwd";<br />
     ssl_trusted_certificate  /etc/nginx/certs/ca.crt;
     access_log           /var/log/nginx/kibana.access.log combined;<br />
     ssl_protocols            TLSv1.2;
     error_log             /var/log/nginx/kibana.error.log;<br />
     ssl_prefer_server_ciphers on;
    <br />
    auth_basic                "Kibana - bitte anmelden";
    location / {<br />
     auth_basic_user_file      /etc/nginx/kibana.passwd;
      proxy_pass            http://localhost:5601;<br />
     access_log               /var/log/nginx/kibana.access.log combined;
      proxy_set_header      Host $host;<br />
     error_log                 /var/log/nginx/kibana.error.log;
      proxy_set_header      X-Real-IP $remote_addr;<br />
      proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;<br />
      proxy_set_header      Proxy "";<br />
    }<br />
  }<br />


Abschließend erstellen wir noch die '''htpasswd Datei''' und legen einen User an:<br />
    location / {
# htpasswd -c /etc/nginx/kibana.passwd kibana<br />
      proxy_pass            http://localhost:5601;
<br />
      proxy_set_header      Host $host;
Zum Schluss nur noch den '''Dienst neustarten''', und schon kann es losgehen:<br />
      proxy_set_header      X-Real-IP $remote_addr;
# service nginx restart<br />
      proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
<br />
      proxy_set_header      Proxy "";
Sie erreichen Ihr Kibana (inkl. Passwortauthentifizierung) jetzt unter:<br />
    }
'''https://host.domain.com'''
}
</syntaxhighlight>


=== '''Tags''' ===
{{Hinweis|Zwei Punkte für aktuelle Umgebungen: Die Direktive <code>ssl on;</code> ist seit Nginx 1.15 veraltet und ab 1.25 entfernt – das <code>ssl</code> am <code>listen</code>-Eintrag genügt. Für die Passwortabfrage muss neben <code>auth_basic_user_file</code> auch <code>auth_basic</code> gesetzt sein (oben ergänzt). Zusätzlich empfiehlt sich <code>TLSv1.3</code> in <code>ssl_protocols</code>.}}
Kibana Passwort Nginx ELK Elastic Stack Elasticsearch Authentifzierung<br /><br />


=== '''Weiterführende Informationen''' ===
== Passwortdatei anlegen ==
Mehr Informationen finden Sie unter [https://www.max-it.de/ www.max-it.de].<br /><br />
<syntaxhighlight lang="bash">
htpasswd -c /etc/nginx/kibana.passwd kibana
</syntaxhighlight>


=== '''Kontakt''' ===
== Dienst neu starten ==
Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben,<br />
<syntaxhighlight lang="bash">
melden Sie sich bitte bei uns unter [http://mailto:techcorner@max-it.de TechCorner@max-it.de].  
service nginx restart
</syntaxhighlight>
Kibana ist anschließend inklusive Passwortschutz unter <code>https://host.domain.com</code> erreichbar.


<br />
== Unterstützung von m.a.x. it ==
'''Über m.a.x. Informationstechnologie AG:''' <br />
Beim Aufbau von Log-Management und SIEM mit Open Source (ELK, Wazuh) unterstützt Sie m.a.x. it mit [https://www.max-it.de/it-services/siem-open-source/ SIEM-Services auf Open-Source-Basis].
m.a.x. it ist seit über 30 Jahren Ihr IT-Dienstleister und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung, um die Digitalisierung von Unternehmen voranzutreiben.
<br />


[[Kategorie: IT-Security]]
== Siehe auch ==
* [[NIS2 und Wazuh]]
 
== Links und Quellen ==
* [https://www.max-it.de/it-services/siem-open-source/ m.a.x. it – SIEM mit Open Source]
 
{{Uebermax}}
[[Kategorie:IT-Security]]

Aktuelle Version vom 15. September 2026, 12:07 Uhr

Auf einen Blick

Gilt fürELK-Stack (Kibana), Nginx unter Debian/Linux
BereichIT-Security
Dauerca. 20 Minuten
Rechteroot
StandSeptember 2026

Kibana ist Teil des ELK-Stacks und visualisiert die in Elasticsearch abgelegten Indizes. Kibana selbst bringt in der Basiskonfiguration keinen ausreichenden Zugriffsschutz mit – deshalb stellt man einen Reverse Proxy wie Nginx davor, der den Zugriff per TLS und Passwort absichert. Dieser Artikel zeigt, wie man einen bestehenden ELK-Server (hier Debian 10) mit Nginx erweitert.

Nginx installieren

apt update
apt install nginx apache2-utils
mkdir /etc/nginx/ssl

Nginx als Reverse Proxy konfigurieren

Die Konfiguration wird nach /etc/nginx/sites-enabled/kibana.conf geschrieben. Zertifikate sollten über eine eigene PKI erstellt werden – hier über eine dedizierte OPNsense (Root-Zertifikat sowie Server-Zertifikat). Platzhalter in spitzen Klammern <…> durch die eigenen Werte ersetzen:

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                "Kibana - bitte anmelden";
    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 "";
    }
}


HinweisZwei Punkte für aktuelle Umgebungen: Die Direktive ssl on; ist seit Nginx 1.15 veraltet und ab 1.25 entfernt – das ssl am listen-Eintrag genügt. Für die Passwortabfrage muss neben auth_basic_user_file auch auth_basic gesetzt sein (oben ergänzt). Zusätzlich empfiehlt sich TLSv1.3 in ssl_protocols.

Passwortdatei anlegen

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

Dienst neu starten

service nginx restart

Kibana ist anschließend inklusive Passwortschutz unter https://host.domain.com erreichbar.

Unterstützung von m.a.x. it

Beim Aufbau von Log-Management und SIEM mit Open Source (ELK, Wazuh) unterstützt Sie m.a.x. it mit SIEM-Services auf Open-Source-Basis.

Siehe auch

Links und Quellen


Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung? Kontakt aufnehmen