{"id":119259,"date":"2022-07-20T03:39:55","date_gmt":"2022-07-20T00:39:55","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=119259"},"modified":"2024-01-17T10:21:42","modified_gmt":"2024-01-17T07:21:42","slug":"deploy-wazuh-on-linux-using-ansible","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/deploy-wazuh-on-linux-using-ansible\/","title":{"rendered":"How To Install Wazuh Security Platform using Ansible"},"content":{"rendered":"\n<p><strong>Wazuh Security Platform<\/strong> is a free and open-source enterprise-ready platform that can be used to perform real-time integrity monitoring, threat detection, incident response, and compliance. It helps collect, index, aggregate, and analyze the security data which may contain system threats or abnormalities. What makes it niftier is that it can be used to protect workloads on both private and public clouds as well as on-premise data centers. <\/p>\n\n\n\n<p>The Wazuh solution is made of the following components:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Wazuh Server<\/strong>&nbsp;\u2013 It is used to analyze the data received from the agents. It processes this data through decoders and rules.<\/li>\n\n\n\n<li><strong>Wazuh indexer<\/strong>&nbsp;\u2013 This is a full-text search and analytics engine with high scalability. Its main function is to index and store alerts from the Wazuh server<\/li>\n\n\n\n<li>Wazuh dashboard&nbsp;\u2013 a web-based UI used to visualize the data analysis.<\/li>\n\n\n\n<li><strong style=\"color: initial\">Wazuh agents<\/strong><span style=\"color: initial\">&nbsp;\u2013 it is installed on endpoints. These are desktops, laptops, servers, cloud instances, or virtual machines.<\/span><\/li>\n<\/ul>\n\n\n\n<p>The Wazuh Security Platform finds its use in the following areas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cloud Security<\/strong>&nbsp;by offering posture management, Workload protection, and Container security<\/li>\n\n\n\n<li><strong>Security Operations<\/strong>&nbsp;that include; Malware Detection, Log Data Analysis, Audit, Compliance e.t.c<\/li>\n\n\n\n<li><strong style=\"color: initial\">Endpoint Security<\/strong><span style=\"color: initial\">&nbsp;with Configuration Assessment, Extended Detection and Response, and File Integrity Monitoring<\/span><\/li>\n\n\n\n<li><strong>Threat Intelligence<\/strong>&nbsp;through Threat hunting, IT Hygiene, and Vulnerability Detection<\/li>\n<\/ul>\n\n\n\n<p><em><strong>Ansible<\/strong><\/em> is an open-source automation tool that simplifies the deployment and management of repetitive tasks. The tasks are defined\/described in a descriptive language based on YAML.<\/p>\n\n\n\n<p>This guide offers the required steps on how to deploy the Wazuh Security Platform on Linux using Ansible. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Getting Started<\/h2>\n\n\n\n<p>For this guide, we will have the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ansible Control Node<\/strong><\/li>\n\n\n\n<li><strong>Wazuh server<\/strong> &#8211; For the Wazuh stack installation<\/li>\n\n\n\n<li><strong>Wazuh agent<\/strong> &#8211; For the Wazuh agent installation<\/li>\n<\/ul>\n\n\n\n<p>Update your server and install the required tools:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">## On Debian\/Ubuntu\n<\/mark><\/em>sudo apt update &amp;&amp; sudo apt upgrade\nsudo apt install curl vim git\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">## On RHEL\/CentOS\/RockyLinux 8\n<\/mark><\/em>sudo yum -y update\nsudo yum -y install curl vim git\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">## On Fedora\n<\/mark><\/em>sudo dnf update\nsudo dnf -y install curl vim git<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. Install and Configure Ansible on Linux<\/h2>\n\n\n\n<p>The first step involves installing Ansible and configuring the agents. This guide offers an easy method to install Ansible on your control node.<\/p>\n\n\n\n<p>Ensure that PIP is installed on your system.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##On Debian\/Ubuntu\n<\/mark><\/em>sudo apt update\nsudo apt install python3 python3-pip -y\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##On CentOS\/Rocky Linux\/Alma Linux\n<\/mark><\/em>sudo yum install python3 python3-pip -y<\/code><\/pre>\n\n\n\n<p>Using PIP, install Ansible with the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pip3 install ansible<\/code><\/pre>\n\n\n\n<p>Alternatively, you can install Ansible from your package manager as shown.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##On Ubuntu\n<\/mark><\/em>sudo apt install ansible\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##On Debian\n<\/mark><\/em>echo \"deb http:\/\/ppa.launchpad.net\/ansible\/ansible\/ubuntu trusty main\" | sudo tee -a \/etc\/apt\/sources.list.d\/ansible-debian.list\nsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367\nsudo apt-get update\nsudo apt-get install ansible\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##On CentOS\/Rocky Linux\/Alma Linux\n<\/mark><\/em>sudo yum install epel-release\nsudo yum install ansible<\/code><\/pre>\n\n\n\n<p>Verify the installation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">ansible --version<\/mark>\nansible 2.9.27\n  config file = \/etc\/ansible\/ansible.cfg\n  configured module search path = &#91;'\/home\/admin\/.ansible\/plugins\/modules', '\/usr\/share\/ansible\/plugins\/modules']\n  ansible python module location = \/usr\/lib\/python3.6\/site-packages\/ansible\n  executable location = \/usr\/bin\/ansible\n  python version = 3.6.8 (default, Nov  9 2021, 14:44:26) &#91;GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configuring SSH key-pairing<\/h3>\n\n\n\n<p>For the Ansible control node to communicate with the endpoints, we need to configure and export SSH keys for each managed node.<\/p>\n\n\n\n<p>First, create the Ansible hosts inventory file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">sudo vim \/etc\/ansible\/hosts<\/mark>\n&#91;wazuh_server]\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-cyan-blue-color\">192.168.205.9<\/mark> ansible_ssh_user=<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">username<\/mark><\/em>\n\n&#91;wazuh_agents]\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-cyan-blue-color\">192.168.205.4<\/mark> ansible_ssh_user=<em><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">username<\/mark><\/em><\/em><\/code><\/pre>\n\n\n\n<p>Remember to replace the <strong>username<\/strong> with the exact SSH username on the managed node. Generate and copy SSH keys of the managed nodes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-keygen -t rsa\nssh-copy-id -i ~\/.ssh\/id_rsa.pub <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">username<\/mark><\/em>@<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-cyan-blue-color\">192.168.205.9<\/mark>\nssh-copy-id -i ~\/.ssh\/id_rsa.pub <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">username<\/mark><\/em>@<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-cyan-blue-color\">192.168.205.4<\/mark><\/code><\/pre>\n\n\n\n<p>Verify the communication.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">ansible all -m ping<\/mark>\n192.168.205.4 | SUCCESS =&gt; {\n    \"ansible_facts\": {\n        \"discovered_interpreter_python\": \"\/usr\/bin\/python3\"\n    },\n    \"changed\": false,\n    \"ping\": \"pong\"\n}\n192.168.205.9 | SUCCESS =&gt; {\n    \"ansible_facts\": {\n        \"discovered_interpreter_python\": \"\/usr\/libexec\/platform-python\"\n    },\n    \"changed\": false,\n    \"ping\": \"pong\"\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Obtain the Wazuh Ansible Playbooks and Roles<\/h2>\n\n\n\n<p>We need to obtain the required playbooks and roles for this installation. First, navigate to the Ansible roles directory.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/etc\/ansible\/roles\/<\/code><\/pre>\n\n\n\n<p>Git clone the repository:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo git clone https:\/\/github.com\/wazuh\/wazuh-ansible.git<\/code><\/pre>\n\n\n\n<p>The file below should be available:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\"> ls<\/mark>\nwazuh-ansible<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Install Wazuh Stack using Ansible<\/h2>\n\n\n\n<p>The Wazuh stack consist of the Wazuh server, Wazuh indexer and Wazuh dashboard. All these are deployed on the node intended to act as your Wazuh server.<\/p>\n\n\n\n<p>First, ensure you are in the wazuh-ansible directory.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/etc\/ansible\/roles\/wazuh-ansible\/\ntree roles -d<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>roles\n\u251c\u2500\u2500 ansible-galaxy\n\u2502&nbsp;&nbsp; \u2514\u2500\u2500 meta\n\u2514\u2500\u2500 wazuh\n    \u251c\u2500\u2500 ansible-filebeat-oss\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 defaults\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 handlers\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 meta\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 tasks\n    \u2502&nbsp;&nbsp; \u2514\u2500\u2500 templates\n    \u251c\u2500\u2500 ansible-wazuh-agent\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 defaults\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 handlers\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 meta\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 tasks\n    \u2502&nbsp;&nbsp; \u2514\u2500\u2500 templates\n    \u251c\u2500\u2500 ansible-wazuh-manager\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 defaults\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 files\n    \u2502&nbsp;&nbsp; \u2502&nbsp;&nbsp; \u2514\u2500\u2500 custom_ruleset\n    \u2502&nbsp;&nbsp; \u2502&nbsp;&nbsp;     \u251c\u2500\u2500 decoders\n    \u2502&nbsp;&nbsp; \u2502&nbsp;&nbsp;     \u2514\u2500\u2500 rules\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 handlers\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 meta\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 tasks\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 templates\n    \u2502&nbsp;&nbsp; \u2514\u2500\u2500 vars\n    \u251c\u2500\u2500 vars\n    \u251c\u2500\u2500 wazuh-dashboard\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 defaults\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 handlers\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 tasks\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 templates\n    \u2502&nbsp;&nbsp; \u2514\u2500\u2500 vars\n    \u2514\u2500\u2500 wazuh-indexer\n        \u251c\u2500\u2500 defaults\n        \u251c\u2500\u2500 handlers\n        \u251c\u2500\u2500 meta\n        \u251c\u2500\u2500 tasks\n        \u2514\u2500\u2500 templates\n\n39 directories<\/code><\/pre>\n\n\n\n<p>You can see all the preconfigured playbooks with the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tree playbooks\/<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>playbooks\/\n\u251c\u2500\u2500 ansible.cfg\n\u251c\u2500\u2500 wazuh-agent.yml\n\u251c\u2500\u2500 wazuh-dashboard.yml\n\u251c\u2500\u2500 wazuh-indexer.yml\n\u251c\u2500\u2500 wazuh-manager-oss.yml\n\u251c\u2500\u2500 wazuh-production-ready.yml\n\u2514\u2500\u2500 wazuh-single.yml\n\n0 directories, 7 files<\/code><\/pre>\n\n\n\n<p>We will configure the<strong> wazuh-manager-oss<\/strong>,<strong> dashboard<\/strong>, and <strong>indexer<\/strong> YAML files. Let us see the content of the files:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Indexer file:<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">cat \/etc\/ansible\/roles\/wazuh-ansible\/playbooks\/wazuh-indexer.yml<\/mark>\n---\n- hosts: wi_cluster\n  roles:\n    - role: ..\/roles\/wazuh\/wazuh-indexer\n\n  vars:\n    instances:           # A certificate will be generated for every node using the name as CN.\n      node1:\n        name: node-1\n        ip: &lt;node-1 IP&gt;\n        role: indexer\n      node2:\n        name: node-2\n        ip: &lt;node-2 IP&gt;\n        role: indexer\n      node3:\n        name: node-3\n        ip: &lt;node-3 IP&gt;\n        role: indexer<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The dashboard file:<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">cat \/etc\/ansible\/roles\/wazuh-ansible\/playbooks\/wazuh-dashboard.yml<\/mark>\n---\n- hosts: wi1\n  roles:\n    - role: ..\/roles\/wazuh\/wazuh-dashboard\n  vars:\n    ansible_shell_allow_world_readable_temp: true<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Manager file:<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">cat \/etc\/ansible\/roles\/wazuh-ansible\/playbooks\/wazuh-manager-oss.yml<\/mark>\n---\n- hosts: managers\n  roles:\n    - role: ..\/roles\/wazuh\/ansible-wazuh-manager\n    - role: ..\/roles\/wazuh\/ansible-filebeat-oss\n      filebeat_output_indexer_hosts:\n      - \"&lt;indexer-node-1&gt;:9200\"\n      - \"&lt;indexer-node-2&gt;:9200\"\n      - \"&lt;indexer-node-2&gt;:9200\"<\/code><\/pre>\n\n\n\n<p>These files are designed to run the services individually, but here, we will create a single file with all the 3 services configured.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim playbooks\/wazuh-stack.yml<\/code><\/pre>\n\n\n\n<p>Add the below lines to the file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- hosts: wazuh_server\n  roles:\n    - role: ..\/roles\/wazuh\/wazuh-indexer\n      perform_installation: false\n  become: no\n  vars:\n    indexer_node_master: true\n    instances:\n      node1:\n        name: node-1       # Important: must be equal to indexer_node_name.\n        ip: 127.0.0.1\n        role: indexer\n  tags:\n    - generate-certs\n\n- hosts: wazuh_server\n  become: yes\n  become_user: root\n  roles:\n    - role: ..\/roles\/wazuh\/wazuh-indexer\n    - role: ..\/roles\/wazuh\/wazuh-dashboard\n\n  vars:\n    single_node: true\n    indexer_network_host: <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">127.0.0.1<\/mark><\/em>\n    ansible_shell_allow_world_readable_temp: true\n    instances:           # A certificate will be generated for every node using the name as CN.\n      node1:\n        name: <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">node-1<\/mark><\/em>\n        ip: 127.0.0.1\n        role: indexer\n    wazuh_api_credentials:\n      - id: default\n        url: https:\/\/<em>&lt;your manager IP&gt;<\/em>\n        port: 55000\n\n- hosts: wazuh_server\n  roles:\n    - role: ..\/roles\/wazuh\/ansible-wazuh-manager\n    - role: ..\/roles\/wazuh\/ansible-filebeat-oss\n      filebeat_node_name: node-1\n      filebeat_output_indexer_hosts:\n      - \"127.0.0.1\"<\/code><\/pre>\n\n\n\n<p>Now the file contains 3 deployments. We have the IP address of the dashboard and indexer defined with the <code>indexer_network_host<\/code> entry.<\/p>\n\n\n\n<p>Set the required permissions.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R $USER:$USER \/etc\/ansible\/roles\/wazuh-ansible\/playbooks\/<\/code><\/pre>\n\n\n\n<p>Now run the playbook.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook playbooks\/wazuh-stack.yml -b -K<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"681\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1024x681.png\" alt=\"\" class=\"wp-image-119301\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1024x681.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-300x200.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-768x511.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-696x463.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1068x710.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-631x420.png 631w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible.png 1159w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Once deployed, verify the status of the:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wazuh indexer:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">systemctl status wazuh-indexer<\/mark>\n\u25cf wazuh-indexer.service - Wazuh-indexer\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/wazuh-indexer.service; enabled; vendor preset: disabled)\n   Active: active (running) since Fri 2023-05-27 13:10:01 EDT; 3min 53s ago\n     Docs: https:\/\/documentation.wazuh.com\n Main PID: 14150 (java)\n    Tasks: 42 (limit: 23505)\n   Memory: 1.4G\n   CGroup: \/system.slice\/wazuh-indexer.service\n           \u2514\u250014150 \/usr\/share\/wazuh-indexer\/jdk\/bin\/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.&gt;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wazuh dashboard<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">systemctl status wazuh-dashboard<\/mark>\n\u25cf wazuh-dashboard.service - wazuh-dashboard\n   Loaded: loaded (\/etc\/systemd\/system\/wazuh-dashboard.service; enabled; vendor preset: disabled)\n   Active: active (running) since Fri 2023-05-27 13:10:03 EDT; 4min 9s ago\n Main PID: 14499 (node)\n    Tasks: 11 (limit: 23505)\n   Memory: 139.1M\n   CGroup: \/system.slice\/wazuh-dashboard.service\n           \u2514\u250014499 \/usr\/share\/wazuh-dashboard\/bin\/..\/node\/bin\/node --no-warnings --max-http-header-size=65536 --unhandled-rejections=warn<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wazuh manager<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">systemctl status wazuh-manager<\/mark>\n\u25cf wazuh-manager.service - Wazuh manager\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/wazuh-manager.service; enabled; vendor preset: disabled)\n   Active: active (running) since Fri 2023-05-27 13:12:40 EDT; 1min 54s ago\n  Process: 23638 ExecStop=\/usr\/bin\/env \/var\/ossec\/bin\/wazuh-control stop (code=exited, status=0\/SUCCESS)\n  Process: 23784 ExecStart=\/usr\/bin\/env \/var\/ossec\/bin\/wazuh-control start (code=exited, status=0\/SUCCESS)\n    Tasks: 104 (limit: 23505)\n   Memory: 240.0M\n   CGroup: \/system.slice\/wazuh-manager.service\n           \u251c\u250023841 \/var\/ossec\/framework\/python\/bin\/python3 \/var\/ossec\/api\/scripts\/wazuh-apid.py\n           \u251c\u250023883 \/var\/ossec\/bin\/wazuh-authd\n           \u251c\u250023900 \/var\/ossec\/bin\/wazuh-db\n           \u251c\u250023912 \/var\/ossec\/framework\/python\/bin\/python3 \/var\/ossec\/api\/scripts\/wazuh-apid.py\n           \u251c\u250023915 \/var\/ossec\/framework\/python\/bin\/python3 \/var\/ossec\/api\/scripts\/wazuh-apid.py\n           \u251c\u250023930 \/var\/ossec\/bin\/wazuh-execd\n           \u251c\u250023945 \/var\/ossec\/bin\/wazuh-analysisd\n           \u251c\u250023959 \/var\/ossec\/bin\/wazuh-syscheckd\n           \u251c\u250023996 \/var\/ossec\/bin\/wazuh-remoted\n           \u251c\u250024033 \/var\/ossec\/bin\/wazuh-logcollector\n           \u251c\u250024053 \/var\/ossec\/bin\/wazuh-monitord\n           \u2514\u250024073 \/var\/ossec\/bin\/wazuh-modulesd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Filebeat<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">systemctl status filebeat<\/mark>\n\u25cf filebeat.service - Filebeat sends log files to Logstash or directly to Elasticsearch.\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/filebeat.service; enabled; vendor preset: disabled)\n   Active: active (running) since Fri 2023-05-27 13:12:42 EDT; 2min 7s ago\n     Docs: https:\/\/www.elastic.co\/products\/beats\/filebeat\n Main PID: 24376 (filebeat)\n    Tasks: 6 (limit: 23505)\n   Memory: 11.7M\n   CGroup: \/system.slice\/filebeat.service\n           \u2514\u250024376 \/usr\/share\/filebeat\/bin\/filebeat --environment systemd -c \/etc\/filebeat\/filebeat.yml --path.home \/usr\/share\/filebeat --<\/code><\/pre>\n\n\n\n<p>Ensure that the required ports are allowed through the firewall.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo firewall-cmd --add-port=443\/tcp --permanent\nsudo firewall-cmd --add-port=514\/udp --permanent\nsudo firewall-cmd --add-port=1514\/udp --permanent\nsudo firewall-cmd --add-port=1515\/udp --permanent\nsudo firewall-cmd --add-port=1514\/tcp --permanent\nsudo firewall-cmd --add-port=1515\/tcp --permanent\nsudo firewall-cmd --add-port=55000\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<p>You can also verify if the components are working as desired.<\/p>\n\n\n\n<p>For Filebeat<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">sudo filebeat test output<\/mark>\nelasticsearch: https:\/\/127.0.0.1:9200...\n  parse url... OK\n  connection...\n    parse host... OK\n    dns lookup... OK\n    addresses: 127.0.0.1\n    dial up... OK\n  TLS...\n    security: server's certificate chain verification is enabled\n    handshake... OK\n    TLS version: TLSv1.3\n    dial up... OK\n  talk to server... OK\n  version: 7.10.2<\/code><\/pre>\n\n\n\n<p>For Wazuh indexer.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">curl -k -u <\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">admin<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">:<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">changeme<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\"> https:\/\/localhost:9200<\/mark>\n{\n  \"name\" : \"node-1\",\n  \"cluster_name\" : \"wazuh\",\n  \"cluster_uuid\" : \"jbbo5MxLRJCuyXu1hV-jKQ\",\n  \"version\" : {\n    \"number\" : \"7.10.2\",\n    \"build_type\" : \"rpm\",\n    \"build_hash\" : \"e505b10357c03ae8d26d675172402f2f2144ef0f\",\n    \"build_date\" : \"2023-01-14T03:38:06.881862Z\",\n    \"build_snapshot\" : false,\n    \"lucene_version\" : \"8.10.1\",\n    \"minimum_wire_compatibility_version\" : \"6.8.0\",\n    \"minimum_index_compatibility_version\" : \"6.0.0-beta1\"\n  },\n  \"tagline\" : \"The OpenSearch Project: https:\/\/opensearch.org\/\"\n}<\/code><\/pre>\n\n\n\n<p>The Wazuh cluster can be deployed by editing the <strong><em>wazuh-production-ready.yml<\/em><\/strong> appropriately.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Install Wazuh Agent using Ansible<\/h2>\n\n\n\n<p>The Wazuh Agent role and playbook are still provided by the cloned repository. Ensure you are on the path.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/etc\/ansible\/roles\/wazuh-ansible\/<\/code><\/pre>\n\n\n\n<p>We will proceed and create a copy of the YAML file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cp \/etc\/ansible\/roles\/wazuh-ansible\/playbooks\/wazuh-agent.yml \/etc\/ansible\/roles\/wazuh-ansible\/playbooks\/wazuh_agent.yml<\/code><\/pre>\n\n\n\n<p>Now edit the new file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim playbooks\/wazuh_agent.yml<\/code><\/pre>\n\n\n\n<p>Ensure the required details are provided:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: wazuh_agents\n  become: yes\n  become_user: root\n  roles:\n    - ..\/roles\/wazuh\/ansible-wazuh-agent\n  vars:\n    wazuh_managers:\n      - address: <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">&lt;your manager IP&gt;<\/mark><\/em>\n        port: 1514\n        protocol: tcp\n        api_port: 55000\n        api_proto: 'https'\n        api_user: ansible\n        max_retries: 5\n        retry_interval: 5<\/code><\/pre>\n\n\n\n<p>Once the correct details are provided for the Manager Ip and host, run the playbook.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook playbooks\/wazuh_agent.yml -b -K<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1-1024x662.png\" alt=\"\" class=\"wp-image-119302\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1-1024x662.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1-300x194.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1-768x496.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1-696x450.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1-650x420.png 650w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-1.png 1032w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Once the deployment is successful, check the status of the Wazuh agent:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">systemctl status wazuh-agent<\/mark>\n\u25cf wazuh-agent.service - Wazuh agent\n     Loaded: loaded (\/lib\/systemd\/system\/wazuh-agent.service; enabled; vendor preset: enabled)\n     Active: active (running) since Fri 2023-05-27 13:18:23 EDT; 19s ago\n    Process: 5244 ExecStart=\/usr\/bin\/env \/var\/ossec\/bin\/wazuh-control start (code=exited, status=0\/SUCCESS)\n      Tasks: 33 (limit: 4663)\n     Memory: 253.5M\n        CPU: 8.293s\n     CGroup: \/system.slice\/wazuh-agent.service\n             \u251c\u25005267 \/var\/ossec\/bin\/wazuh-execd\n             \u251c\u25005278 \/var\/ossec\/bin\/wazuh-agentd\n             \u251c\u25005292 \/var\/ossec\/bin\/wazuh-syscheckd\n             \u251c\u25005304 \/var\/ossec\/bin\/wazuh-logcollector\n             \u251c\u25005321 \/var\/ossec\/bin\/wazuh-modulesd\n             \u251c\u25006336 sh -c \/bin\/ps -p 966 &gt; \/dev\/null 2&gt;&amp;1\n             \u2514\u25006337 \/bin\/ps -p 966<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6. Access the Wazuh Dashboard<\/h2>\n\n\n\n<p>The Wazuh dashboard is available on the URL <a href=\"https:\/\/wazuh_server_ip\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/wazuh_server_IP<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"575\" height=\"598\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-2.png\" alt=\"\" class=\"wp-image-119296\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-2.png 575w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-2-288x300.png 288w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-2-404x420.png 404w\" sizes=\"auto, (max-width: 575px) 100vw, 575px\" \/><\/figure>\n\n\n\n<p>Login using the below credentials:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Username: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">admin<\/mark>\nPassword: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">changeme<\/mark><\/code><\/pre>\n\n\n\n<p>On successful login. Several components will be loaded as shown.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"534\" height=\"519\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-5.png\" alt=\"\" class=\"wp-image-119297\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-5.png 534w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-5-300x292.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-5-432x420.png 432w\" sizes=\"auto, (max-width: 534px) 100vw, 534px\" \/><\/figure>\n\n\n\n<p>Continue and access the dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"711\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-1024x711.png\" alt=\"\" class=\"wp-image-119298\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-1024x711.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-300x208.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-768x533.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-218x150.png 218w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-696x483.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-1068x741.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-605x420.png 605w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3-100x70.png 100w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-3.png 1259w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Click on the Wazuh agents to view the status.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4-1024x544.png\" alt=\"\" class=\"wp-image-119299\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4-1024x544.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4-300x159.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4-768x408.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4-696x370.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4-1068x567.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4-791x420.png 791w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-4.png 1260w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Visualize dashboards on the agent.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"708\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-1024x708.png\" alt=\"\" class=\"wp-image-119300\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-1024x708.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-300x207.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-768x531.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-218x150.png 218w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-696x481.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-1068x739.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-607x420.png 607w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6-100x70.png 100w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/05\/Deploy-Wazuh-Security-Platform-on-Linux-using-Ansible-6.png 1271w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The end!<\/p>\n\n\n\n<p>That marks the end of this guide on how to deploy the Wazuh Security Platform on Linux using Ansible. Using the guide, you can deploy the solution on more servers in your environment at once. I hope this was significant.<\/p>\n\n\n\n<p>See more:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/deploy-graylog-server-using-ansible-on-ubuntu-debian-centos\/\" target=\"_blank\" rel=\"noreferrer noopener\">Deploy Graylog Server using Ansible on Ubuntu\/Debian\/CentOS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/how-to-manage-postgresql-database-with-ansible\/\" target=\"_blank\" rel=\"noreferrer noopener\">How To Manage PostgreSQL Database with Ansible<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/how-to-install-graylog-server-using-puppet-automation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Automate Graylog Server installation using Puppet<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/how-to-upgrade-ansible-awx-running-in-kubernetes\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to upgrade Ansible AWX running in Kubernetes<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Wazuh Security Platform is a free and open-source enterprise-ready platform that can be used to perform real-time integrity monitoring, threat detection, incident response, and compliance. It helps collect, index, aggregate, and analyze the security data which may contain system threats or abnormalities. What makes it niftier is that it can be used to protect workloads &#8230; <a title=\"How To Install Wazuh Security Platform using Ansible\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/deploy-wazuh-on-linux-using-ansible\/\" aria-label=\"Read more about How To Install Wazuh Security Platform using Ansible\">Read more<\/a><\/p>\n","protected":false},"author":21,"featured_media":119074,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[606,329,299,75,832],"tags":[37621],"class_list":["post-119259","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansible","category-automation","category-how-to","category-security","category-tech","tag-wazuh-security-platform"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/119259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=119259"}],"version-history":[{"count":0,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/119259\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/119074"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=119259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=119259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=119259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}