
Introducción
Instalaremos Elasticsearch y Kibana. Utilizaremos la CA creada por Elasticsearch para crear certificados TLS con firma privada para ambos.según la documentación original. Utilizaremos direcciones IP para acceder tanto a Elasticsearch como a Kibana.
Código fuente:Encontrado en Github
Requisitos
En el video, usamos una instancia de Ubuntu 24.04 ejecutándose en una máquina virtual con 8 GB de memoria. La máquina virtual se ejecutará en una red privada local. Instalamos Elastic y Kibana en este mismo servidor.
Pasos
Paso 1 - Actualizar Ubuntu
La instalación de Ubuntu es completamente nueva. Actualizamos la distribución e instalamos algunas herramientas que solemos usar en ambas máquinas.
apt-get update && apt dist-upgrade -y && apt-get install -y vim curl zip gnupg gpg
Paso 2: Instalar Elasticsearch
Las instalaciones de Ubuntu necesitan estas dependencias, así que ejecute estos comandos en ambas:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list
apt-get update;
apt-get install -y apt-transport-https;
apt-get install -y elasticsearch;
Cuando se complete la instalación, asegúrese de anotar la contraseña.
Paso 3: Configurar Elasticsearch
Editar elasticsearch.yml
Ir a la /etc/elasticsearch/elasticsearch.yml
archivo. Edite los siguientes campos:
...etc...
cluster.name: {anything you want}
...etc...
network.host: 0.0.0.0
...etc...
Nota: también puedes reemplazar network.host: 0.0.0.0
con la dirección IP de la máquina a la que desea que otros sistemas hagan referencia.
Cambiar de propietario
chown -R elasticsearch:elasticsearch /etc/elasticsearch
Paso 4: Iniciar Elasticsearch
Inicie elasticsearch con estos comandos:
systemctl enable elasticsearch;
systemctl daemon-reload;
systemctl start elasticsearch;
Confirme que elasticsearch está funcionando con este comando:
curl -X GET -u elastic:<password from step 2> https://{ip address of server}:9200 --cacert /etc/elasticsearch/certs/http_ca.crt
Deberías ver algo como esto:
Paso 5 - OPCIONAL - Cambiar la contraseña elástica
Puede cambiar la contraseña de su instancia de Elasticsearch con este comando /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
. Puedes omitir el -i
Marca si deseas generar automáticamente la contraseña.
Paso 6 - Instalar Kibana
Dado que Kibana utiliza las mismas dependencias que Elasticsearch, puedes proceder directamente a instalar Kibana de la siguiente manera:
apt-get install -y kibana;
Paso 7: Crear certificados para Kibana
Vamos a crear certificados para Kibana. Necesitarás.../usr/share/elasticsearch/bin/elasticsearch-certutil
Comando y los archivos CA de Elasticsearch. Dado que Kibana está en el mismo servidor que Elasticsearch, tenemos acceso a todos estos recursos.
Primero debemos extraer el archivo de clave privada de CA del /etc/elasticsearch/http.p12
. Para ello, deberá conocer la contraseña del http.p12
Archivo, que se almacena en el almacén de claves de Elasticsearch. Vea una lista de todos los pares de almacenes de claves con este comando:
/usr/share/elasticsearch/bin/elasticsearch-keystore list
El xpack.security.http.ssl.keystore.secure_password
Es lo que quieres. Puedes ver la contraseña así:
/usr/share/elasticsearch/bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
Ahora puedes extraer la clave privada desde el http.p12
usando este comando openssl y hacer un http_ca.key
(Ingrese la contraseña cuando se le solicite):
openssl pkcs12 -in /etc/elasticsearch/certs/http.p12 -nodes -nocerts -out /etc/elasticsearch/certs/http_ca.key
Ahora tienes la clave privada de CA como http_ca.key
. Mantener http_ca.key
secreto y nunca lo dejes salir del servidor elasticsearch. O eliminar el http_ca.key
En cuanto termines, puedes recrearlo repitiendo los pasos anteriores.
Ejecute este comando para crear los archivos TLS de Kibana:
/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
--out /etc/kibana/kibana.zip \
--name kibana \
--ca-cert /etc/elasticsearch/certs/http_ca.crt \
--ca-key /etc/elasticsearch/certs/http_ca.key \
--ip {ip address of server} \
--pem;
cd /etc/kibana/;
unzip kibana.zip
mv kibana certs
cp /etc/elasticsearch/certs/http_ca.crt /etc/kibana/certs/
chown -R kibana:kibana /etc/kibana
Paso 8: Configurar Kibana
Ir a la /etc/kibana/kibana.yml
archivo. Edite los siguientes campos:
Edit Kibana.yml
server.host: 0.0.0.0
server.publicBaseUrl: "https://{ip address of server}:5601"
server.ssl.enabled: true
server.ssl.key: /etc/kibana/certs/kibana.key
server.ssl.certificate: /etc/kibana/certs/kibana.crt
server.ssl.certificateAuthorities: /etc/kibana/certs/http_ca.crt
Iniciar Kibana
systemctl enable kibana
systemctl daemon-reload
systemctl start kibana
systemctl status kibana
El systemctl status kibana
Debería mostrar algo como esto después de un minuto más o menos:
Resalté en rojo la URL que debes visitar, excepto reemplazar 0.0.0.0
Con la dirección IP real de su equipo. Recuerde copiar también la cadena de consulta.?code=____
.
En la página web, se le solicitará un token de inscripción.
Crear token de inscripción
Ejecute este comando en el servidor Elasticsearch:
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
Pegue este token en su sitio web de Kibana y presione Configure
.
Si se le solicita un código de verificación, puedes ejecutar este comando para obtenerlo:
/usr/share/kibana/bin/kibana-verification-code
Ahora puedes iniciar sesión en Kibana con el elastic
usuario y contraseña que usted estableció anteriormente.
Paso 9 - Ocultar el token de servicio
Ve a tu /etc/kibana/kibana.yml
y localiza esta línea:
Este valor debería ser secreto. Usemos el almacén de claves de Kibana para ocultarlo.
/usr/share/kibana/bin/kibana-keystore add elasticsearch.serviceAccountToken
Cuando se le solicite, pegue el token de servicio.
Ahora borra la línea elasticsearch.serviceAccountToken: ...
de allí kibana.yml
archivo.
Reiniciar Kibana
systemctl restart kibana
¡Vuelve a tu navegador web y disfruta!