Introducción
La forma más fácil de proteger su tablero de Kibana de intrusos maliciosos es configurar un proxy inverso Nginx. Al hacerlo, se asegura de que solo los usuarios autorizados protegidos con contraseña puedan acceder a Kibana (y a los datos en Elasticsearch).
En este tutorial, aprenderá a configurar el proxy inverso de Nginx para Kibana.

Requisitos previos
- Una pila ELK en funcionamiento instalada en su sistema
- Una cuenta de usuario con sudo privilegios
- Acceso a una ventana de terminal/línea de comando
Configurar proxy inverso de Nginx para Kibana
Paso 1:Configurar Kibana
Antes de comenzar a configurar Nginx, asegúrese de editar los archivos de configuración de Kibana y Elasticsearch.
1. Primero, abra el archivo de configuración de Kibana ejecutando:
sudo vim /etc/kibana/kibana.yml
Si siguió los pasos descritos en la instalación de Kibana, el archivo debería ser similar al que se muestra a continuación.

2. Cambie el puerto del servidor predeterminado y el host del servidor dirección a los siguientes valores:
server.host:"localhost"
server.port:5601
3. A continuación, guardar y salir el archivo.
4. Reinicie el servicio Kibana con el comando:
sudo service kibana restart
Paso 2:Configurar Elasticsearch
1. Repita el mismo proceso para Elasticsearch. Abra su archivo de configuración:
sudo vim /etc/elasticsearch/elasticsearch.yml
2. A continuación, busque las siguientes líneas y cambie el puerto y el host predeterminados:
http.port: 9200
network.host: localhost
3. Guarde el archivo y reinicie el servicio:
sudo service elasticsearch restart
4. Finalmente, verifique que pueda acceder a Kibana navegando a la siguiente URL en un navegador:
http://localhost:5601

Paso 3:Instalar y configurar Nginx
El siguiente paso es configurar Nginx.
1. Si aún no ha instalado Nginx, ejecute el comando:
sudo apt-get install nginx
2. Una vez que configure Nginx, instale apache2-utils , una utilidad para crear cuentas protegidas con contraseña:
sudo apt-get install apache2-utils
3. Luego, cree una cuenta de usuario que desee usar para acceder a Kibana. Reemplazar user_account
en el comando con el nombre de usuario que desea utilizar:
sudo htpasswd -c /etc/nginx/htpasswd.users user_account

4. El resultado le pide que proporcione y vuelva a escribir una contraseña para este usuario:
New password:
Re-type new password:
Adding password for user user_account
5. A continuación, cree un archivo de configuración para Nginx:
sudo vim /etc/nginx/conf.d/kibana.conf
6. Agregue el siguiente contenido una vez dentro del editor de texto:
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. Guarde y salga del archivo.
Paso 4:reinicia los servicios
Debe reiniciar los servicios para que reconozcan la nueva configuración.
1. Reinicie Nginx ejecutando:
sudo service nginx restart
2. Luego, reinicie el servicio Kibana con el comando:
sudo service kibana restart
Paso 5:Confirme que la autenticación funciona correctamente
1. Abra un navegador web y navegue hasta la dirección IP que le asignó a Kibana.
2. Aparece una ventana de autenticación que le pide que proporcione un nombre de usuario y Contraseña .

3. Escriba las credenciales configuradas al configurar Nginx y seleccione Iniciar sesión. . Si proporcionó la información correcta, el navegador abre la página de bienvenida de Kibana.
