Como configurar LMA stack

 


Configurar la pila (stack) LMA (Linux, MySQL, Apache) es un proceso que implica instalar y configurar cada uno de sus componentes principales para que funcionen juntos. Una configuración LMA es una alternativa menos común a la más popular pila LAMP (Linux, Apache, MySQL, PHP) en la que se utiliza una pila de monitoreo como Elastic Stack (ELK) en lugar de un lenguaje de programación dinámico como PHP. Aunque, la combinación de una pila de aplicaciones como LAMP con una pila de monitoreo como ELK (Elasticsearch, Logstash, Kibana) es una configuración común.

A continuación, se presenta un enfoque general de cómo se podría configurar la pila LMA con fines de monitoreo. Este proceso implica:

  • Instalar y configurar Apache.

  • Instalar y configurar MySQL.

  • Instalar y configurar los componentes de Elastic Stack.


1. Preparación del sistema

Antes de empezar, es crucial asegurarse de que tu sistema operativo esté actualizado. En un sistema basado en Debian/Ubuntu, puedes hacerlo con los siguientes comandos:

Bash
sudo apt update
sudo apt upgrade

Para un sistema basado en Red Hat/CentOS, los comandos son:

Bash
sudo yum update
sudo yum upgrade

2. Configurar el servidor web Apache

Apache es el servidor web responsable de servir las páginas web. Para instalarlo, ejecuta los siguientes comandos:

  • En sistemas basados en Debian/Ubuntu:

Bash
sudo apt install apache2
  • En sistemas basados en Red Hat/CentOS:

Bash
sudo yum install httpd

Después de la instalación, inicia el servicio de Apache y habilítalo para que se inicie automáticamente en el arranque del sistema:

Bash
sudo systemctl start apache2
sudo systemctl enable apache2

3. Configurar la base de datos MySQL

MySQL es el sistema de gestión de bases de datos que se utiliza para almacenar la información. Para instalarlo, usa los siguientes comandos:

  • En sistemas basados en Debian/Ubuntu:

Bash
sudo apt install mysql-server
  • En sistemas basados en Red Hat/CentOS:

Bash
sudo yum install mysql-server

Después de la instalación, se recomienda ejecutar el script de seguridad de MySQL para mejorar la seguridad de la base de datos:

Bash
sudo mysql_secure_installation

Este script te guiará a través de una serie de preguntas para establecer una contraseña para el usuario root, eliminar usuarios anónimos, deshabilitar el inicio de sesión remoto para el root y eliminar la base de datos de prueba.


4. Configurar la pila de monitoreo (LMA stack en el contexto de un Elastic Stack)

En este contexto, la pila LMA se refiere a una pila de monitoreo con la combinación de Linux, MySQL y Apache monitoreados por la pila Elastic (ELK). Por lo tanto, el siguiente paso es configurar Elasticsearch, Logstash y Kibana.

a. Elasticsearch

Elasticsearch es un motor de búsqueda y análisis distribuido que almacena los datos de los registros. Para instalarlo:

  1. Importar la clave GPG y el repositorio de Elastic:

Bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
  1. Instalar Elasticsearch:

Bash
sudo apt update
sudo apt install elasticsearch
  1. Configurar Elasticsearch:

    Abre el archivo de configuración elasticsearch.yml y ajusta la configuración de red para permitir la comunicación con otros componentes:

Bash
sudo nano /etc/elasticsearch/elasticsearch.yml

Descomenta las siguientes líneas y establece la dirección IP de tu servidor:

YAML
network.host: 0.0.0.0 # o la IP de tu servidor
http.port: 9200
  1. Iniciar y habilitar el servicio:

Bash
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

b. Logstash

Logstash es una herramienta de recopilación y procesamiento de datos que ingiere datos de múltiples fuentes y los envía a Elasticsearch. Para instalarlo:

  1. Instalar Logstash:

Bash
sudo apt install logstash
  1. Configurar un pipeline de Logstash:

    Crea un archivo de configuración para procesar los registros de Apache. Este ejemplo muestra cómo se podría configurar Logstash para procesar los registros de Apache y enviarlos a Elasticsearch.

Bash
sudo nano /etc/logstash/conf.d/apache.conf

Añade la siguiente configuración:

JSON
input {
  file {
    path => "/var/log/apache2/access.log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "apache-logs-%{+YYYY.MM.dd}"
  }
}
  1. Iniciar y habilitar el servicio:

Bash
sudo systemctl start logstash
sudo systemctl enable logstash

c. Kibana

Kibana es la herramienta de visualización que te permite explorar y analizar los datos almacenados en Elasticsearch. Para instalarlo:

  1. Instalar Kibana:

Bash
sudo apt install kibana
  1. Configurar Kibana:

    Abre el archivo de configuración kibana.yml y configura el puerto y la dirección del host:

Bash
sudo nano /etc/kibana/kibana.yml

Descomenta las siguientes líneas y establece la dirección IP de tu servidor:

YAML
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
  1. Iniciar y habilitar el servicio:

Bash
sudo systemctl start kibana
sudo systemctl enable kibana

5. Finalizar la configuración

Una vez que todos los servicios estén en funcionamiento, puedes acceder a la interfaz de Kibana desde tu navegador web en la dirección http://<tu_IP_del_servidor>:5601. Aquí, podrás ver un panel de control con los registros de Apache que está recopilando Logstash y que se está almacenando en Elasticsearch.

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC