Ir al contenido principal

[Logs II] Instalar ELK elastic stack 7.5

Requerimientos

  • Ubuntu 18.04.3 LTS
  • 4 GB de Ram

¿Qué es entonces el ELK Stack?

ELK es la sigla para tres proyectos open source: Elasticsearch, Logstash y Kibana. Elasticsearch es un motor de búsqueda y analítica. Logstash es un pipeline de procesamiento de datos del lado del servidor que ingesta datos de una multitud de fuentes simultáneamente, los transforma y luego los envía a como Elasticsearch. Kibana permite a los usuarios visualizar los datos en cuadros y gráficos con Elasticsearch.
Si quieres aprender mas del proyecto puedes visitar https://www.elastic.co/es/what-is/elk-stack

Instalar elasticsearch

La opción de instalación mas conveniente para Ubuntu es usar los paquetes deb.
El paquete deb de elasticsearch funciona para sistemas operativos Debian y sus derivados, los puedes bajar directamente del sitio web de elasticsearch o desde el repositorio usando APT.
El paquete que vamos a instalar usa la licencia de elastic, que es open source pero tenemos la opción de pasarnos a la licencia comercial, con la licencia open source ser suficiente para una buena cantidad de requerimientos.

Importar PGP key de elastic

Los paquetes están firmados con la clave D88E42B4, disponible desde https://pgp.mit.edu con el fingerprint:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
Descargar e instalar la clave publica

Instalar desde los repositorios APT

Antes de iniciar necesitamos instalar apt-transport-https

Agregamos el repositorio

Instalamos los paquetes

Iniciar automáticamente elasticsearch al iniciar el sistema

Por default elasticsearch no inicia automáticamente después de la instalación, iniciar y detenerse depende del sistema SysV init o systemd
Podemos saber que sysV estamos usando con el comando

ps -p 1
PID TTY          TIME CMD
    1 ?        00:00:13 systemd
    

En Ubuntu 18.04 por default usa systemd
Para configurar que elasticsearch inicie automáticamente después de un reinicio del sistema usaremos.

para iniciar o detener elasticsearch

estos comandos no tienen salida en consola, pero podemos usar journalctl para ver el estado del inicio de la aplicación

Validar el funcionamiento

Vamos a enviar una petición con curl al puerto 9200 para ver si esta corriendo.

nos regresara algo parecido a esto

{
  "name" : "lnr",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "iv8LyrgVTZW_ax6W2wuxHw",
  "version" : {
    "number" : "7.5.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
    "build_date" : "2019-12-16T22:57:37.835892Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Directorios importantes

Tipo Descricion Directorio Setting
home directorio home or $ES_HOME /usr/share/elasticsearch
bin Binary scripts incluyendo elasticsearch y elasticsearch-plugin para instalar plugins /usr/share/elasticsearch/bin
conf Archivos de configuración incluyendo elasticsearch.yml /etc/elasticsearch ES_PATH_CONF
conf Variables de entorno incluyendo heap size, file descriptors. /etc/default/elasticsearch
data Datos de index / /var/lib/elasticsearch path.data
logs Archivos de Log /var/log/elasticsearch path.logs
plugins Archivos de plugins /usr/share/elasticsearch/plugins
Referencias

instalar kibana

Kibana es un panel de visualización de datos de código abierto para Elasticsearch. Proporciona capacidades de visualización sobre el contenido indexado en un clúster Elasticsearch. Los usuarios pueden crear gráficos de barras, líneas y dispersión, o gráficos circulares y mapas sobre grandes volúmenes de datos.
Vamos a instalar kibana usando los paquetes deb. Si seguimos los pasos anteriores de la parte de la instalación de elasticsearch podemos continuar de lo contrario, agregamos el PGP key, el repositorio e intalamos el apt transports.
Instalamos kibana con apt

Kibana no inicia por default con el sistema podemos hacer que inicie automáticamente con systemd

para iniciar y detener el sistema

validamos el status con

y podemos ver los logs de salida del sistema con journalctl

Validamos el correcto funcionamiento entrado en un navegador a localhost:5601/app/kibana o con curl

si queremos que kibana este disponible en alguna interfaz de especifica editamos el archivo /etc/kiaba/kibana.yml para editar la server.host: "tu ip"

y agregamos la etiqueta

#
#
#
server.host: "tu ip"
#
#

y agregamos las reglas al firewall ufw
entramos desde el navegador o usando curl y si nos regresa el logo de kibana esta listo

Direcciones importantes

Tipo Descrición PATH
home Home de kibana o $KIBANA_HOME /usr/share/kibana
bin Binary scripts incluyendo kibana y kibana-plugin /usr/share/kibana/bin
config Archivos de configuración incluyendo kibana.yml /etc/kibana
data Informacion escrita por kibana /var/lib/kibana
logs Logs /var/log/kibana
plugins Archivos de plugins /usr/share/kibana/plugins
Referencias

instalar logstash

instalar java

Para instalar logstash necesitar java 1.8, podemos instalar java la versión de Oracle o el openjdk, aquí usaremos el openjdk.

verificamos la instalación
java -version

instalar logstash


iniciar o detener el servicio

ver el estatus del servicio

ver salida de logs

Esta es la forma mas fácil de instalar ELK, pero dejaremos para otra entrada la configuración de logstash para dividir los logs.

Comentarios

Entradas más populares de este blog

Vulnerando Bludit v3.9.2

Buenos días, el día de hoy vamos a ver como usar herramientas de hacking para vulnerar Bludit ( https://www.bludit.com/es/ ). Bludit es una aplicación web para construir nuestro propio sitio web o blog en segundos; Es completamente gratuito y de código abierto, podemos encontrar el repositorio en GitHub ( https://github.com/bludit/bludit ). Bludit es un CMS de archivo plano, que (en este caso) significa que Bludit usa archivos en formato JSON para almacenar el contenido. No necesita instalar o configurar una base de datos; solo necesita un servidor web con soporte PHP.   Para iniciar con el proceso de hacking de esta aplicación iniciaremos con el reconocimiento tenemos que identificar toda la información relevante de la aplicación, como, en que lenguaje esta programada, quienes son los desarrolladores, si tiene exploit conocidos, si existen vulnerabilidades conocidas, etc. Como parte de tu investigación debes de considerar consultar las siguientes fuentes https://cve.mitre.org/ , http

TTY: un toolkit para crear aplicaciones de terminal

TTY es un set de gemas que te ayudan a construir, customizar e interactuar con tus aplicaciones de línea de comando. El set de gemas TTY cuenta con 23 componentes individuales que pueden ser usados individualmente con combinados para cubrir con los requerimientos de tu proyecto. TTY esta enfocado en la simplicidad, para que los desarrolladores entiendan el funcionamiento de cada gema por separado. TTY Toolkit es todo lo que tu necesitas para crear grandes aplicaciones. Flexible Los componentes TTY te permiten resolver problemas de línea de comandos de la misma manera que lo hace la filosofía de herramientas enfocadas de Unix. Puede mezclar y combinar componentes como desee. Modular Cada componente es una pieza independiente y se puede combinar de muchas maneras con otras bibliotecas fuera del ecosistema TTY. De confianza Todos los componentes TTY están bien probados para funcionar en todos los principales sistemas operativos y emuladores de terminal, lo que le permite crear

Defensa contra malware

controlar la instalación, propagación y ejecución de código malicioso en múltiples puntos de la organización, al mismo tiempo que optimizar el uso de automatización para permitir la actualización rápida de la defensa, la recopilación de datos y la acción correctiva. ¿Por qué es importante este control? El software malicioso (malware) es un aspecto integral y peligroso de las amenazas en Internet, ya que está diseñado para atacar sus sistemas, dispositivos y sus datos. Se mueve rápidamente, cambia rápidamente y entra a través de múltiples y diversos puntos, como dispositivos de usuario final, archivos adjuntos de correo electrónico, páginas web, servicios en la nube, acciones del usuario y medios extraíbles. El malware moderno está diseñado para evitar las defensas y atacarlas o deshabilitarlas. Las defensas contra malware deben ser capaces de operar en este entorno dinámico a través de la automatización a gran escala, la actualización rápida y la integración con procesos como la re