OpenSearch · 30 min read · Oct 12, 2025

Cómo instalar OpenSearch en Debian 12

OpenSearch es un fork de código abierto de Elasticsearch y Kibana desarrollado por Amazon. Es un motor de búsqueda distribuido, escalable y en tiempo real que permite la búsqueda de texto completo así como análisis. Se utiliza para indexar y buscar grandes cantidades de datos. Comúnmente se despliega junto a OpenSearch Dashboards (un fork de Kibana), un potente panel de visualización de datos para OpenSearch. OpenSearch Dashboards te permite explorar los datos de registro de OpenSearch y construir paneles y consultas para obtener información sobre tu aplicación.

Este tutorial te mostrará cómo instalar OpenSearch en un servidor Debian 12. También aprenderás cómo asegurar tu instalación con certificados TLS personalizados y habilitar la autenticación en OpenSearch.

Prerrequisitos

  • Un servidor que ejecute Debian 12 con un mínimo de 4GB de RAM.

  • Un usuario no root con privilegios sudo.

  • El Firewall sin complicaciones (UFW) está habilitado y en funcionamiento.

  • Un Nombre de Dominio Totalmente Calificado (FQDN) como opensearch.example.com apuntando a tu servidor. Esto es beneficioso si deseas servir OpenSearch Dashboards a través de SSL utilizando un servidor proxy.

  • Todo está actualizado. $ sudo apt update && sudo apt upgrade

  • Se requieren algunos paquetes esenciales para que el tutorial y Craft CMS funcionen. Algunos de estos ya estarán en tu servidor. $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Paso 1 - Configurar el Firewall

El primer paso antes de instalar cualquier paquete es configurar el firewall para permitir conexiones HTTP y HTTPS.

Verifica el estado del firewall.

$ sudo ufw status

Deberías ver algo como lo siguiente.

Estado: activo

Para                         Acción      Desde
--                         ------      ----
OpenSSH                    PERMITIR       En cualquier lugar
OpenSSH (v6)               PERMITIR       En cualquier lugar (v6)

Permite los puertos HTTP y HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Verifica el estado nuevamente para confirmar.

$ sudo ufw status
Estado: activo

Para                         Acción      Desde
--                         ------      ----
OpenSSH                    PERMITIR       En cualquier lugar
80/tcp                     PERMITIR       En cualquier lugar
443/tcp                    PERMITIR       En cualquier lugar
OpenSSH (v6)               PERMITIR       En cualquier lugar (v6)
80/tcp (v6)                PERMITIR       En cualquier lugar (v6)
443/tcp (v6)               PERMITIR       En cualquier lugar (v6)

Paso 2 - Preparar el Sistema

Antes de instalar OpenSearch, necesitamos preparar y optimizar nuestro sistema para ello. Hay varios pasos involucrados que incluyen deshabilitar cualquier memoria swap si la tienes, establecer el número de mapas de memoria para tu sistema y configurar el nombre del host del sistema.

Primero, verifica si tienes habilitada la memoria swap.

$ free -m

Si tienes swap habilitado, deberías ver una salida similar.

               total        usado        libre      compartido  buff/cache   disponible
Mem:            7945        1083        6492          34         636        6861
Swap:           4242           0        4242

Ejecuta los siguientes comandos para deshabilitar el espacio de swap permanentemente.

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstab

Verifica nuevamente la memoria swap y debería mostrar lo siguiente.

               total        usado        libre      compartido  buff/cache   disponible
Mem:            7945        1113        6449          37         651        6831
Swap:              0           0           0

OpenSearch utiliza un directorio mapfs por defecto para almacenar sus índices. Los límites del sistema operativo predeterminado sobre los recuentos de nmap son demasiado bajos, lo que puede causar errores de falta de memoria.

Verifica el valor existente para la variable vm.max_map_count.

$ sysctl -n vm.max_map_count
65530

Para aumentar el número de mapas de memoria utilizados por cada proceso, ejecuta el siguiente comando.

$ sudo sysctl -w vm.max_map_count=262144

Esto solo funcionará hasta que se reinicie el sistema. Para hacer que este valor sea permanente, agrega la línea vm.max_map_count=262144 en el archivo /etc/sysctl.conf utilizando el siguiente comando.

$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

Puedes hacer que el cambio sea permanente reiniciando el sistema o ejecutando el siguiente comando.

$ sudo sysctl -p

El paso final es configurar el nombre del host. Dependiendo de dónde estés alojando tu servidor, algunas empresas de la nube te permiten establecer tu nombre de host directamente a través de su panel de control. Sin embargo, es mejor hacerlo a través de la terminal.

Ejecuta el siguiente comando para establecer el nombre del host.

$ sudo hostnamectl set-hostname opensearch

Agrega el FQDN (Nombre de dominio totalmente calificado) al archivo /etc/hosts. Aquí, mapeamos el nombre de host opensearch al nombre de dominio opensearch.example.com y lo apuntamos a la dirección IP del servidor. Reemplaza en el comando a continuación con la dirección IP de tu servidor.

$ echo "  opensearch.example.com  opensearch" | sudo tee -a /etc/hosts

Verifica el nombre del host y el FQDN utilizando los siguientes comandos.

$ hostname
opensearch
$ hostname -f
opensearch.example.com

Esto termina el proceso de optimización de nuestro sistema para trabajar con OpenSearch.

Paso 3 - Instalar OpenSearch

Importa la clave GPG de OpenSearch utilizada para firmar el paquete de instalación.

$  curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

Crea el archivo del repositorio APT de OpenSearch.

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

Actualiza la lista de repositorios del sistema.

$ sudo apt update

Verifica todas las versiones disponibles de OpenSearch.

$ sudo apt list -a opensearch
Listing... Done
opensearch/stable 2.12.0 amd64
opensearch/stable 2.11.1 amd64
opensearch/stable 2.11.0 amd64
opensearch/stable 2.10.0 amd64
opensearch/stable 2.9.0 amd64
opensearch/stable 2.8.0 amd64
opensearch/stable 2.7.0 amd64
opensearch/stable 2.6.0 amd64
opensearch/stable 2.5.0 amd64

La última versión de OpenSearch v2.12.0 requiere que establezcas la contraseña de demostración del administrador antes de la instalación o fallará.

Puedes instalar la última versión de OpenSearch utilizando el siguiente comando. Podemos establecer la contraseña de demostración del administrador utilizando la variable de entorno en el comando de instalación. Elige una contraseña fuerte.

$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD= apt install opensearch

Si ves la siguiente advertencia durante la instalación, puedes ignorarla de forma segura.

......
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
......

O puedes instalar una versión específica.

$ sudo apt install opensearch=2.11.1

Recarga el demonio del servicio.

$ sudo systemctl daemon-reload

Habilita el servicio OpenSearch.

$ sudo systemctl enable opensearch

Inicia el servicio OpenSearch.

$ sudo systemctl start opensearch

Verifica el estado del servicio OpenSearch.

$ sudo systemctl status opensearch

Deberías obtener la siguiente salida.

? opensearch.service - OpenSearch
     Cargado: cargado (/lib/systemd/system/opensearch.service; habilitado; preset: habilitado)
     Activo: activo (en ejecución) desde Sat 2024-03-02 06:37:01 UTC; 5s hace
       Docs: https://opensearch.org/
   PID principal: 31109 (java)
      Tareas: 75 (límite: 4652)
     Memoria: 1.3G
        CPU: 1min 3.128s
     CGroup: /system.slice/opensearch.service
             ??31109 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true...

Paso 4 - Probar OpenSearch

Antes de continuar, verifiquemos si la instalación está funcionando correctamente. Ejecuta el siguiente comando para verificar si OpenSearch está funcionando como se espera.

$ curl -X GET https://localhost:9200 -u 'admin:' --insecure

Deberías obtener una salida similar.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "El Proyecto OpenSearch: https://opensearch.org/"
}

Consulta el endpoint de plugins de OpenSearch para ver la lista de plugins disponibles.

$ curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:' --insecure

También puedes usar el siguiente comando para lo mismo.

$ /usr/share/opensearch/bin/opensearch-plugin list

Deberías obtener una salida similar.

name       component                            version
opensearch opensearch-alerting                  2.12.0.0
opensearch opensearch-anomaly-detection         2.12.0.0
opensearch opensearch-asynchronous-search       2.12.0.0
opensearch opensearch-cross-cluster-replication 2.12.0.0
opensearch opensearch-custom-codecs             2.12.0.0
opensearch opensearch-flow-framework            2.12.0.0
opensearch opensearch-geospatial                2.12.0.0
opensearch opensearch-index-management          2.12.0.0
opensearch opensearch-job-scheduler             2.12.0.0
opensearch opensearch-knn                       2.12.0.0
opensearch opensearch-ml                        2.12.0.0
opensearch opensearch-neural-search             2.12.0.0
opensearch opensearch-notifications             2.12.0.0
opensearch opensearch-notifications-core        2.12.0.0
opensearch opensearch-observability             2.12.0.0
opensearch opensearch-performance-analyzer      2.12.0.0
opensearch opensearch-reports-scheduler         2.12.0.0
opensearch opensearch-security                  2.12.0.0
opensearch opensearch-security-analytics        2.12.0.0
opensearch opensearch-skills                    2.12.0.0
opensearch opensearch-sql                       2.12.0.0

Puedes instalar plugins adicionales utilizando el siguiente comando.

$ /usr/share/opensearch/bin/opensearch-plugin install 

Puedes encontrar la lista de plugins disponibles de OpenSearch en su sitio web oficial.

Paso 5 - Configurar OpenSearch

Los ajustes predeterminados de OpenSearch no son adecuados para un entorno de producción. Por defecto, OpenSearch no está vinculado a una interfaz de red y no es accesible desde el exterior. Además, se están utilizando nombres de usuario y contraseñas predeterminados que pueden causar problemas de seguridad si se utilizan directamente en un entorno de producción.

OpenSearch almacena su configuración en el archivo /etc/opensearch/opensearch.yml. Ábrelo para editar.

$ sudo nano /etc/opensearch/opensearch.yml

Busca la línea #network.host: 192.168.0.1 y descoméntala eliminando el hash (#) delante de ella y cambiando su valor como se muestra. Esto vincula OpenSearch a todas las interfaces disponibles. También puedes optar por ingresar una IP específica para vincularla a una interfaz específica.

# Establece la dirección de enlace a una IP específica (IPv4 o IPv6):
#
network.host: 0.0.0.0

Agrega las siguientes líneas al final del archivo.

# A menos que ya hayas configurado un clúster, debes establecer
# discovery.type en single-node, o las verificaciones de arranque fallarán
# cuando intentes iniciar el servicio.
discovery.type: single-node

# Si anteriormente deshabilitaste el plugin de seguridad en opensearch.yml,
# asegúrate de volver a habilitarlo. De lo contrario, puedes omitir esta configuración.
plugins.security.disabled: false

Dado que estamos instalando en un solo servidor, hemos establecido discovery.type en single-node. Establecer plugins.security.disabled en false habilita el plugin de seguridad de OpenSearch.

Guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

También necesitamos especificar los tamaños de heap inicial y máximo de JVM (Java Virtual Memory). Esta configuración depende del tamaño de RAM de tu servidor. Por ejemplo, estamos utilizando un servidor con 4GB de RAM, por lo que estamos estableciendo el tamaño de heap en 3GB.

Crea y abre el archivo heapsize.options en el directorio /etc/opensearch/jvm.options.d para editar. Sobrescribirá el valor predeterminado establecido en el archivo /etc/opensearch/jvm.options.

$ sudo nano /etc/opensearch/jvm.options.d/heapsize.options

Agrega las siguientes líneas a él.

-Xms3g
-Xmx3g

Guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

Reinicia el servicio OpenSearch para implementar los cambios.

$ sudo systemctl restart opensearch

Puedes verificar el tamaño de heap actual y la memoria máxima utilizando el siguiente comando.

$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:' --insecure

Deberías obtener la siguiente salida.

heap.current heap.percent heap.max
     345.5mb           11      3gb

Paso 6 - Configurar TLS para OpenSearch

Aquí generaremos certificados para asegurar OpenSearch. Los certificados TLS proporcionan seguridad al permitir que los clientes confirmen la identidad de los hosts y cifren el tráfico entre un cliente y el host. Generaremos los siguientes certificados:

  1. Certificados CA raíz - Estos son los certificados principales que firmarán todos los demás certificados.
  2. Certificados de administrador - Estos certificados se utilizan para obtener derechos elevados para realizar tareas administrativas relacionadas con el plugin de seguridad.
  3. Certificados de nodo - Estos certificados se utilizan para la comunicación entre un nodo y el cliente.

Todos los certificados de OpenSearch se almacenan en el directorio /etc/opensearch. El primer paso es eliminar los certificados predeterminados establecidos durante la instalación de OpenSearch.

Cambia al directorio de OpenSearch.

$ cd /etc/opensearch

Elimina los certificados predeterminados.

$ sudo rm -f *.pem

Abre el archivo de configuración de OpenSearch para editar.

$ sudo nano opensearch.yml

Comenta el siguiente código al final del archivo poniendo un hash delante de cada línea dentro de la sección Configuración de demostración de seguridad de OpenSearch como se muestra a continuación.

######## Inicio de la configuración de demostración de seguridad de OpenSearch ########
# ADVERTENCIA: revisa todas las líneas a continuación antes de entrar en producción
#plugins.security.ssl.transport.pemcert_filepath: esnode.pem
#plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
#plugins.security.ssl.transport.enforce_hostname_verification: false
#plugins.security.ssl.http.enabled: true
#plugins.security.ssl.http.pemcert_filepath: esnode.pem
#plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
#plugins.security.allow_unsafe_democertificates: true
#plugins.security.allow_default_init_securityindex: true
#plugins.security.authcz.admin_dn: ['CN=kirk,OU=client,O=client,L=test,C=de']
#plugins.security.audit.type: internal_opensearch
#plugins.security.enable_snapshot_restore_privilege: true
#plugins.security.check_snapshot_restore_write_privileges: true
#plugins.security.restapi.roles_enabled: [all_access, security_rest_api_access]
#plugins.security.system_indices.enabled: true
#plugins.security.system_indices.indices: [.plugins-ml-config, .plugins-ml-connector,
#  .plugins-ml-model-group, .plugins-ml-model, .plugins-ml-task, .plugins-ml-conversation-meta,
#  .plugins-ml-conversation-interactions, .plugins-ml-memory-meta, .plugins-ml-memory-message,
#  .opendistro-alerting-config, .opendistro-alerting-alert*, .opendistro-anomaly-results*,
#  .opendistro-anomaly-detector*, .opendistro-anomaly-checkpoints, .opendistro-anomaly-detection-state,
#  .opendistro-reports-*, .opensearch-notifications-*, .opensearch-notebooks, .opensearch-observability,
#  .ql-datasources, .opendistro-asynchronous-search-response*, .replication-metadata-store,
#  .opensearch-knn-models, .geospatial-ip2geo-data*, .plugins-flow-framework-config,
#  .plugins-flow-framework-templates, .plugins-flow-framework-state]
#node.max_local_storage_nodes: 3
######## Fin de la configuración de demostración de seguridad de OpenSearch ########

Guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

A continuación, crea un directorio para almacenar los certificados dentro del directorio /etc/opensearch.

$ sudo mkdir /etc/opensearch/certs

Cambia el permiso del directorio al usuario que ha iniciado sesión actualmente para evitar usar sudo mientras generas los certificados.

$ sudo chown $USER:$USER /etc/opensearch/certs -R

Cambia al directorio de certificados.

$ cd /etc/opensearch/certs

Generar Certificados Raíz

Genera una clave privada para el certificado raíz.

$ openssl genrsa -out root-ca-key.pem 2048

Genera un certificado CA raíz autofirmado. Estamos utilizando el parámetro -subj para proporcionar información que se incrustará en el certificado. Si no usas la bandera -subj, se te pedirá toda esta información.

$ openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730

Puedes cambiar la información para adaptarla a tu host específico.

Las variables en el parámetro -subj significan lo siguiente.

C = Nombre del país (código de 2 letras), ST = Nombre del estado o provincia (nombre completo), L = Nombre de la localidad (por ejemplo, ciudad), O = Nombre de la organización, OU = Nombre de la unidad organizativa (por ejemplo, sección), CN = Nombre común (por ejemplo, FQDN del servidor)

Tu certificado raíz ya está activo.

Generar Certificados de Administrador

Genera la clave privada para el certificado de administrador utilizando el siguiente comando.

$ openssl genrsa -out admin-key-temp.pem 2048

Convierte la clave privada al formato PKCS#8 para su uso en Java utilizando un algoritmo compatible con PKCS#12 (3DES).

$ openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

Genera el CSR (Solicitud de Firma de Certificado) de administrador a partir de la clave privada. Dado que este certificado no está vinculado a ningún host y se utiliza para autenticar el acceso elevado, estamos utilizando un valor de A para el Nombre Común (CN).

$ openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr

Firma el CSR de administrador con el certificado raíz y la clave privada que acabas de crear.

$ openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Certificado de solicitud de auto-firma ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = A

Generar Certificados de Nodo

Genera una clave privada para el certificado de nodo.

$ openssl genrsa -out node1-key-temp.pem 2048

Convierte la clave privada del nodo al formato PKCS#8.

$ openssl pkcs8 -inform PEM -outform PEM -in node1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node1-key.pem

Crea un nuevo CSR para el certificado de nodo a partir de la clave privada. Asegúrate de cambiar el valor de la variable CN con el nombre de host de tu nodo. Este certificado está vinculado a tus hosts y debe coincidir con el nombre de host o la dirección IP del nodo.

$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csr

Crea un archivo de extensión SAN (Nombre Alternativo del Sujeto) que contenga el nombre de host del nodo o FQDN o dirección IP.

$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'

Firma el CSR del certificado de nodo con el certificado raíz y la clave privada que acabas de crear.

$ openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node1.pem -days 730 -extfile node1.ext
Certificado de solicitud de auto-firma ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.com

Preparando Certificados para la Instalación

Elimina cualquier certificado temporal, CSR y el archivo de extensión SAN.

$ rm -f *temp.pem *csr *ext

A continuación, instalaremos el certificado CA raíz en el servidor. Para ello, convierte el certificado CA raíz al formato .crt.

$ openssl x509 -outform der -in root-ca.pem -out root-ca.crt

Copia el archivo root-ca.crt al directorio /usr/local/share/ca-certificates/.

$ sudo cp root-ca.crt /usr/local/share/ca-certificates/

Agrega el certificado CA raíz a tu servidor Debian utilizando el siguiente comando.

$ sudo update-ca-certificates

Deberías ver la siguiente salida ( 1 agregado) confirmando que el certificado CA raíz se ha agregado a tu sistema.

Actualizando certificados en /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
rehash: warning: skipping root-ca.pem,it does not contain exactly one certificate or CRL
1 agregado, 0 eliminado; hecho.
Ejecutando hooks en /etc/ca-certificates/update.d...
done.

Cambia la propiedad del directorio de nuevo al usuario opensearch.

$ sudo chown opensearch:opensearch /etc/opensearch/certs -R

Cambia el permiso en el directorio a 0700.

$ sudo chmod 0700 /etc/opensearch/certs

Cambia el permiso en los certificados a 0600.

$ sudo chmod 0600 /etc/opensearch/certs/{admin-key,admin,node1-key,node1,root-ca-key,root-ca}.pem
$ sudo chmod 0600 /etc/opensearch/certs/root-ca.crt

Paso 7 - Instalar TLS en OpenSearch

Ahora que todos los certificados están generados y configurados, es hora de instalar y agregar los certificados a tu instalación de OpenSearch.

El primer paso es crear un script bash que agregue todos los certificados creados y la configuración del plugin de seguridad TLS al archivo de configuración de OpenSearch (/etc/opensearch/opensearch.yml).

Crea un archivo llamado add-opensearch-tls.sh y ábrelo para editar.

$ cd ~
$ nano add-opensearch-tls.sh

Pega el siguiente código en él.

#! /bin/bash

# Antes de ejecutar este script, asegúrate de reemplazar el CN en el 
# nombre distintivo del nodo con un registro DNS A real.

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml

Guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

Haz que el archivo sea ejecutable.

$ chmod +x add-opensearch-tls.sh

Ejecuta el script.

$ ./add-opensearch-tls.sh

Deberías obtener la siguiente salida.

plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Abre el archivo /etc/opensearch/opensearch.yml para verificar si se han aplicado tus configuraciones.

$ sudo nano /etc/opensearch/opensearch.yml

Desplázate hasta el final del archivo y deberías ver lo siguiente.

# Si anteriormente deshabilitaste el plugin de seguridad en opensearch.yml,
# asegúrate de volver a habilitarlo. De lo contrario, puedes omitir esta configuración.
plugins.security.disabled: false
....
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Una vez que estés satisfecho, guarda el archivo presionando Ctrl + X.

Paso 8 - Crear Usuario de OpenSearch

En este paso, eliminaremos todos los usuarios de demostración excepto el usuario admin y reemplazaremos la contraseña predeterminada de admin utilizando un script.

Cambia al directorio de herramientas del plugin de seguridad de OpenSearch.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Ejecuta el script hash.sh para generar una nueva contraseña.

$ ./hash

El script fallará y obtendrás el siguiente error porque la ruta al ejecutable de Java (JDK) no se ha definido.

************************************************************************
 Esta herramienta será descontinuada en la próxima versión principal de OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
ADVERTENCIA: ni OPENSEARCH_JAVA_HOME ni JAVA_HOME están configurados, se utilizará
./hash.sh: línea 35: java: comando no encontrado

Ejecuta el comando nuevamente declarando la variable de entorno OPENSEARCH_JAVA_HOME con la ubicación del JDK.

$ OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Obtendrás una salida similar.

**********************************************************************
 Esta herramienta será descontinuada en la próxima versión principal de OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
[Contraseña:]
$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2

Generará el hash de la contraseña que necesitaremos más tarde.

Abre el archivo de configuración de usuarios de OpenSearch internal_users.yml en el directorio /etc/opensearch/opensearch-security/ para editar.

$ sudo nano /etc/opensearch/opensearch-security/internal_users.yml

Comenta todos los usuarios de demostración agregando un hash delante de ellos como se muestra.

---
# Esta es la base de datos de usuarios internos
# El valor hash es un hash bcrypt y se puede generar con plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Define tus usuarios internos aquí

## Usuarios de demostración

#admin:
#  hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
#  reservado: true
#  backend_roles:
#  - "admin"
#  descripción: "Usuario administrador de demostración"

#anomalyadmin:

Agrega el usuario admin con el hash que generaste arriba como se muestra.

---
# Esta es la base de datos de usuarios internos
# El valor hash es un hash bcrypt y se puede generar con plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Define tus usuarios internos aquí

admin:
  hash: "$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2"
  reservado: true
  backend_roles:
  - "admin"
  descripción: "Usuario administrador"

## Usuarios de demostración

#admin:

Una vez finalizado, guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

Ahora que los certificados TLS están instalados y los usuarios de demostración eliminados o asignados nuevas contraseñas, es hora de aplicar los cambios de configuración. Para aplicar los cambios, invocaremos el script securityadmin.sh dentro del directorio /usr/share/opensearch/plugins/opensearch-security/tools. El script requiere que el servicio OpenSearch esté en funcionamiento.

Reinicia el servicio OpenSearch.

$ sudo systemctl restart opensearch

Cambia al directorio /usr/share/opensearch/plugins/opensearch-security/tools.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Ejecuta el script utilizando el siguiente comando.

$ sudo OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h opensearch.nspeaks.com -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

El plugin de seguridad almacena su configuración, incluidos usuarios, permisos, roles y configuraciones de backend en un índice del sistema en el clúster de OpenSearch. Almacenar estas configuraciones en el clúster te permite cambiar configuraciones sin reiniciar el clúster y elimina la necesidad de editar el archivo de configuración en cada nodo. Esto se logra ejecutando el script securityadmin.sh.

  • La opción -cd especifica dónde se encuentran los archivos de configuración del plugin de seguridad.
  • La opción -icl ( --ignore-clustername) le dice al plugin de seguridad que cargue la configuración independientemente del nombre del clúster. También puedes especificar el nombre del clúster en lugar de usar la opción -cn ( --clustername).
  • Dado que los certificados son autofirmados, usamos la opción -nhnv ( --disable-host-name-verification).
  • Las opciones --cacert, --cert y --key definen la ubicación del certificado raíz, el certificado de administrador y la clave privada para el certificado de administrador. Si la clave privada tiene una contraseña, puedes definirla utilizando la opción -keypass.

Puedes aprender más sobre la configuración del plugin de seguridad en la documentación de OpenSearch.

Deberías haber obtenido una salida similar a la siguiente con el comando anterior.

**********************************************************************
 Esta herramienta será descontinuada en la próxima versión principal de OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
************************************************************************
Administrador de seguridad v7
Se conectará a opensearch:9200 ... hecho
Conectado como "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA"
Versión de OpenSearch: 2.12.0
Contactando al clúster opensearch 'opensearch' y esperando el estado del clúster YELLOW ...
Nombre del clúster: opensearch
Estado del clúster: GREEN
Número de nodos: 1
Número de nodos de datos: 1
.elasticsearch_security ya existe, por lo que no necesitamos crear uno.
Poblar configuración desde /etc/opensearch/opensearch-security/
Se actualizará '/config' con /etc/opensearch/opensearch-security/config.yml 
   SUCC: Configuración para 'config' creada o actualizada
Se actualizará '/roles' con /etc/opensearch/opensearch-security/roles.yml 
   SUCC: Configuración para 'roles' creada o actualizada
Se actualizará '/rolesmapping' con /etc/opensearch/opensearch-security/roles_mapping.yml 
   SUCC: Configuración para 'rolesmapping' creada o actualizada
Se actualizará '/internalusers' con /etc/opensearch/opensearch-security/internal_users.yml 
   SUCC: Configuración para 'internalusers' creada o actualizada
Se actualizará '/actiongroups' con /etc/opensearch/opensearch-security/action_groups.yml 
   SUCC: Configuración para 'actiongroups' creada o actualizada
Se actualizará '/tenants' con /etc/opensearch/opensearch-security/tenants.yml 
   SUCC: Configuración para 'tenants' creada o actualizada
Se actualizará '/nodesdn' con /etc/opensearch/opensearch-security/nodes_dn.yml 
   SUCC: Configuración para 'nodesdn' creada o actualizada
Se actualizará '/whitelist' con /etc/opensearch/opensearch-security/whitelist.yml 
   SUCC: Configuración para 'whitelist' creada o actualizada
Se actualizará '/audit' con /etc/opensearch/opensearch-security/audit.yml 
   SUCC: Configuración para 'audit' creada o actualizada
Se actualizará '/allowlist' con /etc/opensearch/opensearch-security/allowlist.yml 
   SUCC: Configuración para 'allowlist' creada o actualizada
SUCC: Se esperaban 10 tipos de configuración para el nodo {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} es 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) debido a: null
Hecho con éxito

Verifica las nuevas credenciales utilizando el siguiente comando.

Durante la prueba anterior, dirigimos las solicitudes a localhost. Ahora que los certificados TLS están configurados y los nuevos certificados se refieren al registro DNS real del host, las solicitudes a localhost fallarán la verificación de CN y el certificado se considerará inválido. Por lo tanto, agrega tu registro DNS real en el comando a continuación para verificar.

$ curl https://your.host.address:9200 -u admin:yournewpassword -k

Deberías ver la siguiente respuesta.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "El Proyecto OpenSearch: https://opensearch.org/"
}

Paso 9 - Instalar OpenSearch Dashboards

Dado que ya instalamos OpenSearch, podemos omitir el paso de importar la clave GPG de OpenSearch.

Para instalar OpenSearch Dashboards, ejecuta el siguiente comando para crear un repositorio APT para ello.

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

Actualiza la lista de repositorios del sistema.

$ sudo apt update

Lista todas las versiones disponibles de OpenSearch Dashboards.

$ sudo apt list -a opensearch-dashboards

Deberías ver una salida similar.

Listing... Done
opensearch-dashboards/stable 2.12.0 amd64
opensearch-dashboards/stable 2.11.1 amd64
opensearch-dashboards/stable 2.11.0 amd64
opensearch-dashboards/stable 2.10.0 amd64
opensearch-dashboards/stable 2.9.0 amd64
opensearch-dashboards/stable 2.8.0 amd64
opensearch-dashboards/stable 2.7.0 amd64
opensearch-dashboards/stable 2.6.0 amd64
opensearch-dashboards/stable 2.5.0 amd64

Instala la última versión de OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards

O instala una versión específica de OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards=2.12.0

La versión de OpenSearch Dashboards y OpenSearch debe ser la misma, de lo contrario, puedes enfrentar múltiples problemas.

Recarga el demonio del servicio.

$ sudo systemctl daemon-reload

Habilita el servicio OpenSearch Dashboards.

$ sudo systemctl enable opensearch-dashboards

Inicia el servicio OpenSearch Dashboards.

$ sudo systemctl start opensearch-dashboards

Verifica el estado del servicio OpenSearch Dashboards.

$ sudo systemctl status opensearch-dashboards

Deberías ver la siguiente salida.

? opensearch-dashboards.service - "OpenSearch Dashboards"
     Cargado: cargado (/lib/systemd/system/opensearch-dashboards.service; habilitado; preset: habilitado)
     Activo: activo (en ejecución) desde Sat 2024-03-02 16:01:25 UTC; 4s hace
   PID principal: 7098 (node)
      Tareas: 11 (límite: 9484)
     Memoria: 175.4M
        CPU: 5.389s
     CGroup: /system.slice/opensearch-dashboards.service
             ??7098 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

Mar 02 16:01:25 opensearch systemd[1]: Started opensearch-dashboards.service - "OpenSearch Dashboards".

Paso 10 - Configurar OpenSearch Dashboards

OpenSearch Dashboards almacena su configuración en el archivo /etc/opensearch-dashboards/opensearch_dashboards.yml. Ábrelo para editar.

$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.yml

Busca la línea # server.host: "localhost" y descoméntala eliminando el hash delante de ella y cambiando su valor como se muestra.

# Especifica la dirección a la que el servidor OpenSearch Dashboards se vinculará. Las direcciones IP y los nombres de host son valores válidos.
# El valor predeterminado es 'localhost', lo que generalmente significa que las máquinas remotas no podrán conectarse.
# Para permitir conexiones de usuarios remotos, establece este parámetro en una dirección que no sea de bucle invertido.
server.host: 0.0.0.0

Establecer el valor de server.host en 0.0.0.0 vincula OpenSearch Dashboard a cualquier IP externa, lo que lo hace accesible a través de la World Wide Web. Si deseas servir los Dashboards a través de SSL utilizando un proxy inverso, entonces deja este valor sin cambios.

Desplázate hacia abajo para encontrar la siguiente sección.

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Cambia los valores según lo configurado para nuestra instalación de OpenSearch.

opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password: 
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Una vez finalizado, guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

Reinicia el servicio OpenDashboards.

$  sudo systemctl restart opensearch-dashboards

Abre el puerto 5601 en el firewall UFW.

$ sudo ufw allow 5601

Abre la URL http://:5601 o http://opensearch.example.com:5601 para lanzar el sitio web de OpenSearch Dashboards.

Inicio de sesión de OpenSearch Dashboards

Si estás contento accediendo a OpenSearch Dashboards a través de HTTP y con un número de puerto en la URL, puedes detenerte aquí. Sin embargo, es mejor servir los Dashboards a través de SSL. Para esto, instalaremos Nginx como un proxy inverso y servir SSL a través de él.

Paso 11 - Instalar Nginx

Debian 12 viene con una versión más antigua de Nginx. Necesitas descargar el repositorio oficial de Nginx para instalar la última versión.

Importa la clave de firma de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Agrega el repositorio para la versión principal de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Actualiza los repositorios del sistema.

$ sudo apt update

Instala Nginx.

$ sudo apt install nginx

Verifica la instalación. En sistemas Debian, el siguiente comando solo funcionará con sudo.

$ sudo nginx -v
nginx version: nginx/1.25.4

Inicia el servidor Nginx.

$ sudo systemctl start nginx

Verifica el estado del servicio.

$ sudo systemctl status nginx
? nginx.service - nginx - servidor web de alto rendimiento
     Cargado: cargado (/lib/systemd/system/nginx.service; habilitado; preset: habilitado)
     Activo: activo (en ejecución) desde Sat 2024-03-02 12:53:57 UTC; 4s hace
       Docs: https://nginx.org/en/docs/
    Proceso: 3976 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (código=salió, estado=0/SUCCESS)
   PID principal: 3977 (nginx)
      Tareas: 3 (límite: 9484)
     Memoria: 2.7M
        CPU: 9ms
     CGroup: /system.slice/nginx.service
             ??3977 "nginx: proceso maestro /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??3978 "nginx: proceso trabajador"
             ??3979 "nginx: proceso trabajador"

Mar 02 12:53:57 opensearch systemd[1]: Starting nginx.service - nginx - servidor web de alto rendimiento...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - servidor web de alto rendimiento.

Paso 12 - Instalar SSL

Necesitamos instalar Certbot para generar el certificado SSL. Puedes instalar Certbot utilizando el repositorio de Debian o obtener la última versión utilizando la herramienta Snapd. Usaremos la versión Snapd.

Debian 12 no viene con Snapd instalado. Instala el paquete Snapd.

$ sudo apt install snapd

Ejecuta los siguientes comandos para asegurarte de que tu versión de Snapd esté actualizada.

$ sudo snap install core && sudo snap refresh core

Instala Certbot.

$ sudo snap install --classic certbot

Utiliza el siguiente comando para asegurarte de que el comando Certbot pueda ejecutarse creando un enlace simbólico al directorio /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verifica si Certbot está funcionando correctamente.

$ certbot --version
certbot 2.9.0

Ejecuta el siguiente comando para generar un certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.com

El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/craftcms.example.com en tu servidor.

Genera un certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Verifica el servicio programador de renovación de Certbot.

$ sudo systemctl list-timers

Encontrarás snap.certbot.renew.service como uno de los servicios programados para ejecutarse.

NEXT                        LEFT           LAST                        PASSED    UNIT                         ACTIVATES                   ---------------------------------------------------------------------------------------------------------------------------------------  
Sat 2024-03-02 16:25:00 UTC 3h 27min left  -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Sat 2024-03-02 23:00:51 UTC 10h left       Sat 2024-03-02 06:29:02 UTC 6h ago    apt-daily.timer              apt-daily.service
Sun 2024-03-03 00:00:00 UTC 11h left       -                           -         dpkg-db-backup.timer         dpkg-db-backup.service
.....

Haz una prueba en seco del proceso para verificar si la renovación de SSL está funcionando bien.

$ sudo certbot renew --dry-run

Si no ves errores, estás listo. Tu certificado se renovará automáticamente.

Paso 13 - Configurar Nginx

Abre el archivo /etc/nginx/nginx.conf para editar.

$ sudo nano /etc/nginx/nginx.conf

Agrega la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

Crea y abre el archivo /etc/nginx/conf.d/opensearch.conf para editar.

$ sudo nano /etc/nginx/conf.d/opensearch.conf

Pega el siguiente código en él. Reemplaza opensearch.example.com con tu nombre de dominio.

server {

    listen 443 ssl;
    listen [::]:443 ssl;

    http2 on;
    http3 on;
    quic_retry on;

    server_name opensearch.example.com;

    access_log  /var/log/nginx/opensearch.access.log;
    error_log   /var/log/nginx/opensearch.error.log;

    ssl_certificate      /etc/letsencrypt/live/opensearch.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/opensearch.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/opensearch.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_early_data on;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    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 X-Forwarded-Proto $scheme;
    }
}
# forzar HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  opensearch.example.com;
    return 301   https://$host$request_uri;
}

Guarda el archivo presionando Ctrl + X y luego Y cuando se te solicite.

Verifica tu configuración de Nginx.

$ sudo nginx -t

Reinicia el servidor Nginx.

$ sudo systemctl restart nginx

Visita https://opensearch.example.com en tu navegador para lanzar OpenSearch Dashboards.

Paso 14 - Acceder y usar OpenSearch Dashboards

Si usaste Nginx, entonces accede a los Dashboards a través de la URL https://opensearch.example.com o usa http://opensearch.example.com:5601 y deberías obtener la página de inicio de sesión.

Credenciales de inicio de sesión de OpenSearch Dashboards

Ingresa admin y la contraseña de administrador personalizada que configuraste para OpenSearch en el paso 4 y haz clic en el botón Iniciar sesión para continuar.

Página de agregar datos de OpenSearch Dashboards

Haz clic en el botón Agregar datos para comenzar a agregar datos directamente o haz clic en el enlace Explorar por mi cuenta si deseas navegar primero. Navegaremos primero y debería llevarte a un popup que habla sobre el modo oscuro de OpenSearch Dashboards.

Popup de tema de OpenSearch Dashboards

Haz clic en el botón Descartar para continuar. A continuación, se te pedirá que elijas un inquilino.

Pantalla de selección de inquilino de OpenSearch Dashboards

Los inquilinos en OpenSearch Dashboards son espacios para guardar patrones de índice, visualizaciones, paneles y otros objetos de OpenSearch Dashboards. Cada usuario puede crear múltiples inquilinos para múltiples usos. Los inquilinos son útiles para compartir tu trabajo de forma segura con otros usuarios de OpenSearch Dashboards. OpenSearch te da la opción de elegir entre tres opciones.

  • Global - Este inquilino es compartido entre todos los usuarios de OpenSearch Dashboards.
  • Privado - Este inquilino es exclusivo para cada usuario y no se puede compartir.
  • Personalizado - Los administradores pueden crear inquilinos personalizados y asignarlos a roles específicos. Una vez creados, puedes usar estos inquilinos para proporcionar espacios a un conjunto específico de usuarios.

Por ahora, nos quedaremos con la opción predeterminada de un inquilino Privado. Haz clic en el botón Confirmar para continuar. Serás recibido con la siguiente página.

Página de inicio de OpenSearch Dashboards

A continuación, verificaremos la conexión entre OpenSearch y OpenSearch Dashboards.

Haz clic en el botón Dev Tools en la parte superior derecha y se te mostrará un mini popup sobre la interfaz de consola para OpenSearch Dashboards.

Popup de consola de herramientas de desarrollo de OpenSearch Dashboards

Haz clic en el botón Descartar, ingresa la consulta GET / en la consola de la izquierda y haz clic en el pequeño botón de reproducción en el medio. Deberías ver la siguiente salida a la derecha.

Verificación de conexión de consola de OpenSearch Dashboards

Esto confirma que OpenSearch Dashboards está recibiendo datos de OpenSearch y ambos están funcionando bien. Puedes comenzar a agregar datos desde aquí.

Conclusión

Esto concluye el tutorial sobre la instalación de OpenSearch en un servidor Debian 12. Si tienes alguna pregunta, publícalas en los comentarios a continuación.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.