
Introducción
Instalaremos Elasticsearch y Kibana y los protegeremos con certificados SSL autofirmados.
Requisitos
En el video, usamos dos instancias de Ubuntu 20.04 ejecutándose en una VM en un servicio en la nube.
Suponemos que también tiene registros A en su DNS que asignan un dominio a la máquina virtual de Elasticsearch y otro a la máquina virtual de Kibana. Para la demostración a continuación, usaremos elastic.evermight.net
y kibana.evermight.net
.
Pasos
Paso 1 - Actualizar Ubuntu [02:30]
Ambas instalaciones de Ubuntu son completamente nuevas. 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 gnupg gpg
Paso 2: Instalar Elasticsearch [02:50]
Ambas 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/8.x/apt stable main' | sudo tee /etc/apt/sources.list.d/elastic-8.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: Crear un certificado autofirmado para Elasticsearch [04:50]
Hagamos certificados SSL autofirmados para elastic.evermight.net
y kibana.evermight.net
.
Ir a la elastic.evermight.net
caparazón.
Cree la autoridad de certificación con este comando:
/usr/share/elasticsearch/bin/elasticsearch-certutil ca --pem --out /etc/elasticsearch/certs/ca.zip
cd /etc/elasticsearch/certs/
unzip ca.zip
Ahora vamos a crear un certificado autofirmado para elastic.evermight.net
y firmarlo con nuestro ca.crt
:
/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
--out /etc/elasticsearch/certs/elastic.zip \
--name elastic \
--ca-cert /etc/elasticsearch/certs/ca/ca.crt \
--ca-key /etc/elasticsearch/certs/ca/ca.key \
--dns elastic.evermight.net \
--pem;
cd /etc/elasticsearch/certs/;
unzip elastic.zip
Opcionalmente, si también utiliza una dirección IP, puede pasarla --ip
Opción e indique su dirección IP.
Paso 4: Configurar Elasticsearch [03:50]
Editar elasticsearch.yml
Ir a la /etc/elasticsearch/elasticsearch.yml
archivo. Edite los siguientes campos:
...etc...
cluster.name: <anything you want>
...etc...
network.host: elastic.evermight.net
...etc...
http.port: 9200
...etc...
xpack.security.http.ssl:
enabled: true
key: certs/elastic/elastickey.
certificate: certs/elastic/elastic.crt
certificate_authorities: certs/ca/ca.crt
...etc...
Cambiar de propietario
chown -R elasticsearch:elasticsearch /etc/elasticsearch
Paso 5: Iniciar Elasticsearch [12:45]
Inicie elasticsearch con estos comandos:
systemctl enable elasticsearch;
systemctl start elasticsearch;
Confirme que elasticsearch está funcionando con este comando:
curl -X GET -u elastic:<password from step 2> https://elastic.evermight.net:9200 --cacert /etc/elasticsearc/cert/ca/ca.crt
Deberías ver algo como esto:
Paso 6 - Instalar Kibana [16:10]
Ejecute este comando en el kibana.evermight.net
máquina:
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/8.x/apt stable main' | sudo tee /etc/apt/sources.list.d/elastic-8.x.list;
apt-get install -y apt-transport-https;
apt-get install -y kibana;
Paso 7: Crear un certificado autofirmado para Kibana
Ahora vamos a crear un certificado autofirmado para kibana.evermight.net
y firmarlo con nuestro ca.crt
. Ve a tu elastic.evermight.net
máquina y ejecute este comando:
/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
--out /etc/elasticsearch/certs/kibana.zip \
--name elastic \
--ca-cert /etc/elasticsearch/certs/ca/ca.crt \
--ca-key /etc/elasticsearch/certs/ca/ca.key \
--dns kibana.evermight.net \
--pem;
cd /etc/elasticsearch/certs/;
unzip kibana.zip
Copiaremos el /etc/elasticsearch/certs/kibana/*
A la kibana.evermight.net
En breve.
Paso 8 - Configurar Kibana [15:26]
Copiar certificados SSL:
Ve a tu kibana.evermight.net
Servidor y ejecute este comando:
mkdir /etc/kibana/certs/kibana
Luego copie los certificados SSL del Paso 7 en el directorio de arriba.
Editar kibana.yml
Ir a la /etc/kibana/kibana.yml
archivo. Edite los siguientes campos:
server.port: 5601
server.host: 0.0.0.0
server.publicBaseUrl: "https://kibana.evermight.net:5601"
server.ssl.enabled: true
server.ssl.key: /etc/kibana/certs/kibana/kibana.key
server.ssl.certificate: /etc/kibana/certs/kibana/kibana.crt
server.ssl.certificateAuthorities: /etc/kibana/certs/ca/ca.crt
elasticsearch.hosts: ["https://elastic.evermight.net:9200"]
elasticsearch.ssl.verificationMode: full
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/ca/ca.crt"]
Crear token de servicio
Ejecute este comando en el servidor Elasticsearch:
/usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
chown -R elasticsearch:elasticsearch /etc/elasticsearch
Copia el token que ves.
Ejecute este comando en el servidor Kibana:
/usr/share/kibana/bin/kibana add elasticsearch.serviceAccountToken
Pegue el token después del mensaje.
Paso 9 - Iniciar Kibana [27:50]
systemctl enable kibana;
systemctl start kibana;
Ya puedes visitarnos https://kibana.evermight.net:5601/
e iniciar sesión con elastic
y la contraseña del paso 3.