Introduzione
Il modo più semplice per proteggere la dashboard di Kibana da intrusi dannosi è configurare un proxy inverso Nginx. In questo modo, ti assicuri che solo gli utenti autorizzati protetti da password possano accedere a Kibana (e ai dati in Elasticsearch).
In questo tutorial imparerai come configurare il proxy inverso Nginx per Kibana.
Prerequisiti
- Uno stack ELK funzionante installato sul tuo sistema
- Un account utente con sudo privilegi
- Accesso a una finestra di terminale/riga di comando
Configura proxy inverso Nginx per Kibana
Fase 1:Configura Kibana
Prima di iniziare a configurare Nginx, assicurati di modificare i file di configurazione di Kibana ed Elasticsearch.
1. Innanzitutto, apri il file di configurazione di Kibana eseguendo:
sudo vim /etc/kibana/kibana.yml
Se hai seguito i passaggi descritti nell'installazione di Kibana, il file dovrebbe essere simile a quello visualizzato di seguito.
2. Modificare la porta del server predefinita e l'host del server indirizzo ai seguenti valori:
server.host:"localhost"
server.port:5601
3. Successivamente, salva e esci il file.
4. Riavvia il servizio Kibana con il comando:
sudo service kibana restart
Fase 2:Configura Elasticsearch
1. Ripetere la stessa procedura per Elasticsearch. Apri il suo file di configurazione:
sudo vim /etc/elasticsearch/elasticsearch.yml
2. Quindi, trova le seguenti righe e modifica la porta e l'host predefiniti:
http.port: 9200
network.host: localhost
3. Salva il file e riavvia il servizio:
sudo service elasticsearch restart
4. Infine, verifica di poter accedere a Kibana navigando al seguente URL in un browser:
http://localhost:5601
Fase 3:installa e configura Nginx
Il prossimo passo è configurare Nginx.
1. Se non hai ancora installato Nginx, esegui il comando:
sudo apt-get install nginx
2. Dopo aver configurato Nginx, installa apache2-utils , un'utilità per la creazione di account protetti da password:
sudo apt-get install apache2-utils
3. Quindi, crea un account utente che desideri utilizzare per accedere a Kibana. Sostituisci user_account
nel comando con il nome utente che vuoi utilizzare:
sudo htpasswd -c /etc/nginx/htpasswd.users user_account
4. L'output chiede quindi di fornire e digitare nuovamente una password per questo utente:
New password:
Re-type new password:
Adding password for user user_account
5. Quindi, crea un file di configurazione per Nginx:
sudo vim /etc/nginx/conf.d/kibana.conf
6. Aggiungi il seguente contenuto una volta all'interno dell'editor di testo:
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream elasticsearch {
server 127.0.0.1:9200;
keepalive 15;
}
upstream kibana {
server 127.0.0.1:5601;
keepalive 15;
}
server {
listen 8881;
location / {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
proxy_pass http://elasticsearch;
proxy_redirect off;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
server {
listen 8882;
location / {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
proxy_pass http://kibana;
proxy_redirect off;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
}
7. Salva ed esci dal file.
Passaggio 4:riavvia i servizi
È necessario riavviare i servizi affinché riconoscano la nuova configurazione.
1. Riavvia Nginx eseguendo:
sudo service nginx restart
2. Quindi, riavvia il servizio Kibana con il comando:
sudo service kibana restart
Passaggio 5:conferma che l'autenticazione funziona correttamente
1. Apri un browser web e vai all'indirizzo IP che hai assegnato a Kibana.
2. Viene visualizzata una finestra di autenticazione che ti chiede di fornire un Nome utente e Password .
3. Digita le credenziali configurate durante la configurazione di Nginx e seleziona Accedi . Se hai fornito le informazioni corrette, il browser apre la pagina di benvenuto di Kibana.