Configure una pila de Elastic 100 % en contenedores en minutos, protegida con TLS, con Elasticsearch, Kibana, Fleet y motores de detección preconfigurados, habilitados y listos para usar.
Si está interesado en obtener más detalles sobre este proyecto y qué hacer después de ejecutarlo, consulte nuestra Artículo de blog En el sitio web del Laboratorio de Seguridad Elastic.
Este no es un proyecto creado, patrocinado ni mantenido por Elastic. Elastic no es responsable del diseño o implementación de este proyecto.
Git clone
este almacén- Requisitos previos de instalación (ver más abajo)
- cambiar a
elastic-container/
Carpeta - Cambiar contraseña predeterminada
changeme
adentro.env
archivo (no cambiarelastic
nombre de usuario que es Usuarios integrados necesarios) - Habilitación por lotes de reglas de detección prediseñadas en el sistema operativo
.env
archivo (no es necesario, consulte el uso a continuación) - hacer
elastic-container.sh
Los scripts de Shell se pueden ejecutar a través dechmod +x elastic-container.sh
- implementar
elastic-container.sh
script de shell con parámetro de inicio./elastic-container start
- Esperar notificación tu navegas
(Es posible que reciba una advertencia del navegador debido al certificado autofirmado. Puede escribirthisisnotsafe
o haga clic en Continuar, lo que le llevará a la pantalla de inicio de sesión de Elastic)
Tabla de Contenidos
Sistema operativo:
requisitos previos:
Puede utilizar el enlace de arriba, el comando de instalación del paquete de Linux a continuación o salir adelante por sí mismo Si estás usando MacOS
Sistema Apple:
brew install jq git curl docker-compose
brew install --cask docker
Después de instalar Docker, debemos proporcionarle acceso privilegiado para que funcione correctamente. Ejecute el siguiente comando para iniciar la aplicación Docker y siga los siguientes pasos.
open /Applications/Docker.app
- Confirma que quieres abrir la aplicación
- Seleccione Aceptar cuando se le solicite proporcionar acceso privilegiado a Docker.
- Ingresa tu contraseña
- Cerrar o minimizar la aplicación Docker
Ubuntu:
por favor, siga Instrucciones de instalación de Docker.De particular interés es que usted debe Instalar docker-compose-plugin
que es diferente de docker-compose
.
apt-get install jq git curl
CentOS/Fedora:
por favor, siga Instrucciones de instalación de Docker.De particular interés es que usted debe Instalar docker-compose-plugin
que es diferente de docker-compose
.
dnf install jq git curl
Otras distribuciones de Linux:
por favor, siga Instrucciones de instalación de Docker.De particular interés es que usted debe Instalar docker-compose-plugin
que es diferente de docker-compose
.
Los usuarios de Arch Linux deben instalar inetutils
y cambiar el script de shell de hostname -I
llegar hostname -i
.
Windows 10/11 (Ubuntu 20.04) con WSL 2:
Asegúrese de estar utilizando WSL versión 2.Puede verificar la versión usando el siguiente comando wsl -l -v
En PowerShell.Si la versión es incorrecta, puedes cambiarla de las siguientes maneras wsl --set-version Ubuntu-20.04 2
apt-get update
apt-get install jq git curl
por favor, siga Instrucciones de instalación de Docker.De particular interés es que usted debe Instalar docker-compose-plugin
que es diferente de docker-compose
.
Después de instalar el paquete Docker, ejecute sudo service docker start
Iniciarlo.
Esto utiliza créditos predeterminados. elastic:changeme
Puramente para investigación de seguridad en pilas de Elastic locales. Cambiar contraseña en .env
documento.no cambies elastic
nombre de usuario que es Usuarios integrados necesarios
Esto no debe exponerse en Internet ni utilizarse en entornos de producción.
Habilitar reglas de detección prediseñadas
Si desea habilitar las reglas de detección prediseñadas de Elastic en lotes por sistema operativo, puede cambiar el valor para los sistemas operativos seleccionados en el lanzamiento. .env
Los archivos van de 0 a 1.
# Bulk Enable Detection Rules by OS
LinuxDR=0
WindowsDR=1
MacOSDR=0
comenzar
si no lo has hecho Contraseña predeterminada cambiada adentro .env
archivo, el script se cerrará.
Comienza por:
- Crea un archivo llamado
elastic
- Descargue las imágenes de Elasticsearch, Kibana y Elastic-Agent Docker definidas en el script
- Inicie Elasticsearch, Kibana y Elastic-Agent configurados como servidor de cola, que contiene todas las configuraciones necesarias para la cola y el motor de detección.
$ ./elastic-container.sh start
...
⠿ Container elasticsearch-security-setup Healthy 7.3s
⠿ Container elasticsearch Healthy 39.3s
⠿ Container kibana Healthy 59.3s
⠿ Container elastic-agent Started 59.7s
Attempting to enable the Detection Engine and Prebuilt-Detection Rules
Kibana is up. Proceeding
Detection engine enabled. Installing prepackaged rules.
Prepackaged rules installed!
Waiting 40 seconds for Fleet Server setup
Populating Fleet Settings
READY SET GO!
Browse to
Username: elastic
Passphrase: not-the-default!
Después de unos minutos, cuando se le solicite, Navegar e inicie sesión con sus credenciales configuradas.
destruir
Para destruir la voluntad:
- Detener los contenedores Elasticsearch y Kibana
- Eliminar contenedores Elasticsearch y Kibana
- borrar
elastic
red de contenedores - Eliminar un volumen existente
$ ./elastic-container.sh destroy
fleet-server
kibana
elasticsearch
elastic
detener
Detenerse:
- Detenga los contenedores de Elasticsearch y Kibana sin eliminarlos
- (4/4/2023) Estamos rastreando una pregunta Si no corres
stop
comando y luego reinicia el host, el servidor de la flota no puede mantener su estado y falla.Por favor, correstop
Antes de reiniciar el host ejecutando la pila
$ ./elastic-container.sh stop
fleet-server
kibana
elasticsearch
elastic
Reiniciando
El reinicio:
- Reiniciar todos los contenedores
$ ./elastic-container.sh restart
elasticsearch
kibana
fleet-server
estado
El estado de la solicitud será:
- Devuelve el estado actual del contenedor en ejecución.
$ ./elastic-container.sh status
NAMES: STATUS
fleet-server: Up 6 minutes
kibana: Up 6 minutes
elasticsearch: Up 6 minutes
liquidación
La liquidación será:
- Borrar todos los documentos en el índice de registros y métricas
$ ./elastic-container.sh clear
Successfully cleared logs data stream
Successfully cleared metrics data stream
entrega
La imagen del contenedor provisional:
- Descarga todas las imágenes del contenedor al sistema nativo pero no las inicia.
$ ./elastic-container.sh stage
8.6.0: Pulling from elasticsearch/elasticsearch
e7bd69ff4774: Pull complete
d0a0f12aaf30: Pull complete
...
existir .env
las variables han sido definidas, las siguientes son las variables que se pueden cambiar. Debe cambiar la contraseña predeterminada.
ELASTIC_PASSWORD="changeme"
KIBANA_PASSWORD="changeme"
STACK_VERSION="8.10.2"
STACK_VERSION="8.10.2"
Si desea cambiar el valor predeterminado, simplemente reemplace el contenido apropiado en la declaración de la variable.
También puede cambiar estas versiones si desea utilizar una versión diferente del Elastic Stack. Los valores opcionales están disponibles en Docker Hub de Elastic: