Wazuh es una solución de monitoreo de seguridad gratuita, de código abierto y lista para empresas para la detección de amenazas, el monitoreo de integridad, la respuesta a incidentes y el cumplimiento.
En este tutorial, vamos a mostrar la instalación de arquitectura distribuida. Las arquitecturas distribuidas controlan el administrador de Wazuh y los clústeres de pila elástica a través de diferentes hosts. Wazuh manager y Elastic Stack se administran en la misma plataforma mediante implementaciones de host único.
Servidor Wazuh :Ejecuta la API y Wazuh Manager. Los datos de los agentes desplegados se recopilan y analizan.
Elastic Stack :ejecuta Elasticsearch, Filebeat y Kibana (incluido Wazuh). Lee, analiza, indexa y almacena datos de alertas del administrador de Wazuh.
Agente de Wazuh :se ejecuta en el host supervisado, recopila datos de registro y configuración y detecta intrusiones y anomalías.
1. Instalación del servidor Wazuh
Preconfiguración
Primero establezcamos el nombre de host. Inicie Terminal e ingrese el siguiente comando:
hostnamectl set-hostname wazuh-server
Actualizar CentOS y paquetes:
yum update -y
A continuación, instale NTP y verifique el estado de su servicio.
yum install ntp
systemctl status ntpd
Si el servicio no se inicia, inícielo usando el siguiente comando:
systemctl start ntpd
Habilitar NTP en el arranque del sistema:
systemctl enable ntpd
Modifique las reglas del firewall para permitir el servicio NTP. Ejecute los siguientes comandos para habilitar el servicio.
firewall-cmd --add-service=ntp --zone=public --permanent
firewall-cmd --reload
Instalando el administrador de Wazuh
Agreguemos clave:
rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
Edite el repositorio de Wazuh:
vim /etc/yum.repos.d/wazuh.repo
Agregue el siguiente contenido al archivo.
[wazuh_repo] gpgcheck=1 gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH enabled=1 name=Wazuh repository baseurl=https://packages.wazuh.com/3.x/yum/ protect=1
Guarde y salga del archivo.
Enumere los repositorios usando el repolist comando.
yum repolist
Instale el administrador de Wazuh usando el siguiente comando:
yum install wazuh-manager -y
Luego, instala Wazuh Manager y verifica su estado.
systemctl status wazuh-manager
Instalación de la API de Wazuh
Se requiere NodeJS>=4.6.1 para ejecutar la API de Wazuh.
Agregue el repositorio oficial de NodeJS:
curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
instalar NodeJS:
yum install nodejs -y
Instale la API de Wazuh. Actualizará NodeJS si es necesario:
yum install wazuh-api
Verifique el estado de wazuh-api.
systemctl status wazuh-api
Cambie las credenciales predeterminadas manualmente usando los siguientes comandos:
cd /var/ossec/api/configuration/auth
Establezca una contraseña para el usuario.
node htpasswd -Bc -C 10 user darshana
Reiniciar API.
systemctl restart wazuh-api
Si lo necesita, puede cambiar el puerto manualmente. El archivo /var/ossec/api/configuration/config.js contiene el parámetro:
// TCP Port used by the API. config.port = "55000";
No vamos a cambiar el puerto predeterminado.
Instalación de Filebeat
Filebeat es la herramienta del servidor de Wazuh que reenvía de forma segura alertas y eventos archivados a Elasticsearch. Para instalarlo, ejecute el siguiente comando:
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
Configuración del repositorio:
vim /etc/yum.repos.d/elastic.repo
Agregue los siguientes contenidos al servidor:
[elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
Instalar Filebeat:
yum install filebeat-7.5.1
Descargue el archivo de configuración de Filebeat del repositorio de Wazuh. Esto está preconfigurado para reenviar alertas de Wazuh a Elasticsearch:
curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh/v3.11.0/extensions/filebeat/7.x/filebeat.yml
Cambiar permisos de archivo:
chmod go+r /etc/filebeat/filebeat.yml
Descarga la plantilla de alertas para Elasticsearch:
curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/v3.11.0/extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json
Descarga el módulo Wazuh para Filebeat:
curl -s https://packages.wazuh.com/3.x/filebeat/wazuh-filebeat-0.1.tar.gz | sudo tar -xvz -C /usr/share/filebeat/module
Agregue la IP del servidor de Elasticsearch. Edite "filebeat.yml".
vim /etc/filebeat/filebeat.yml
Modifique la siguiente línea.
output.elasticsearch.hosts: ['http://ELASTIC_SERVER_IP:9200']
Habilite e inicie el servicio Filebeat:
systemctl daemon-reload systemctl enable filebeat.service systemctl start filebeat.service
2. Instalación de pila elástica
Ahora vamos a configurar el segundo servidor Centos con ELK.
Realice las configuraciones en su servidor de pila elástica.
Preconfiguraciones
Como de costumbre, establezcamos primero el nombre de host.
hostnamectl set-hostname elk
Actualizar el sistema:
yum update -y
Instalación de ELK
Instale Elastic Stack con paquetes RPM y luego agregue el repositorio de Elastic y su clave GPG:
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
Crear un archivo de repositorio:
vim /etc/yum.repos.d/elastic.repo
Agregue el siguiente contenido al archivo:
[elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
Instalación de Elasticsearch
Instale el paquete de Elasticsearch:
yum install elasticsearch-7.5.1
Elasticsearch escucha de forma predeterminada en la interfaz de bucle invertido (localhost). Configure Elasticsearch para escuchar una dirección que no sea de bucle invertido editando /etc/elasticsearch/elasticsearch.yml y descomentando la configuración de network.host. Ajuste el valor de IP al que desea conectarse:
network.host: 0.0.0.0
Cambiar las reglas del cortafuegos.
firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4" source address="34.232.210.23/32" port protocol="tcp" port="9200" accept'
Recargar reglas de cortafuegos:
firewall-cmd --reload
La configuración adicional será necesaria para el archivo de configuración de búsqueda elástica.
Edite el archivo “elasticsearch.yml”.
vim /etc/elasticsearch/elasticsearch.yml
Cambie o edite "node.name" y "cluster.initial_master_nodes".
node.name: <node_name>
cluster.initial_master_nodes: ["<node_name>"]
Habilite e inicie el servicio Elasticsearch:
systemctl daemon-reload
Habilitar en el arranque del sistema.
systemctl enable elasticsearch.service
Inicie el servicio de búsqueda elástica.
systemctl start elasticsearch.service
Comprueba el estado de la búsqueda elástica.
systemctl status elasticsearch.service
Verifique el archivo de registro para ver si hay algún problema.
tail -f /var/log/elasticsearch/elasticsearch.log
Una vez que Elasticsearch esté en funcionamiento, debemos cargar la plantilla de Filebeat. Ejecute el siguiente comando en el servidor de Wazuh (instalamos filebeat allí).
filebeat setup --index-management -E setup.template.json.enabled=false
Instalación de Kibana
Instale el paquete Kibana:
yum install kibana-7.5.1
Instale el complemento de la aplicación Wazuh para Kibana:
sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.11.0_7.5.1.zip
Kibana PluginNecesita modificar las configuraciones de Kibana para acceder a Kibana desde el exterior.
Edite el archivo de configuración de Kibana.
vim /etc/kibana/kibana.yml
Cambie la siguiente línea.
server.host: "0.0.0.0"
Configure las URL de las instancias de Elasticsearch.
elasticsearch.hosts: ["http://localhost:9200"]
Habilite e inicie el servicio Kibana:
systemctl daemon-reload systemctl enable kibana.service systemctl start kibana.service
Agregar la API de Wazuh a las configuraciones de Kibana
Edite "wazuh.yml".
vim /usr/share/kibana/plugins/wazuh/wazuh.yml
Editar nombre de host, nombre de usuario y contraseña:
Guarde y salga del archivo y reinicie el servicio Kibana.
systemctl restart kibana.service
Instalamos el servidor Wazuh y el servidor ELK. Ahora vamos a agregar hosts usando un agente.
3. Instalando el agente de Wazuh
Yo. Agregar servidor Ubuntu
a. Instalando los paquetes necesarios
apt-get install curl apt-transport-https lsb-release gnupg2
Instale la clave GPG del repositorio de Wazuh:
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
Agregue el repositorio y luego actualice los repositorios.
echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
apt-get update
b. Instalación del agente de Wazuh
El comando Blow agrega la IP "WAZUH_MANAGER" a la configuración del agente wazuh automáticamente al instalarlo.
WAZUH_MANAGER="52.91.79.65" apt-get install wazuh-agent
II. Agregar host CentOS
Agregue el repositorio de Wazuh.
rpm --import http://packages.wazuh.com/key/GPG-KEY-WAZUH
Edite y agregue al repositorio:
vim /etc/yum.repos.d/wazuh.repo
Agregue los siguientes contenidos:
[wazuh_repo] gpgcheck=1 gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH enabled=1 name=Wazuh repository baseurl=https://packages.wazuh.com/3.x/yum/ protect=1
Instale el agente.
WAZUH_MANAGER="52.91.79.65" yum install wazuh-agent
4. Accediendo al panel de control de Wazuh
Explora Kibana usando la IP.
http://IP or hostname:5601/
Verá la siguiente interfaz.
Luego haga clic en el ícono "Wazuh" para ir a su Tablero. Verá el panel "Wazuh" de la siguiente manera.
Aquí puede ver los agentes conectados, la gestión de la información de seguridad, etc. al hacer clic en los eventos de seguridad; puede ver una vista gráfica de los eventos.
Si llegaste hasta aquí, ¡felicidades! Se trata de instalar y configurar el servidor Wazuh en CentOS.