Networking and Security

Step-by-Step Guide to Installing Wazuh on Ubuntu Server 24.04

Install Wazuh 4.14 on Ubuntu Server 24.04 with the official all-in-one assistant, open the right ports, add Linux and Windows agents and fix common errors.

By Amjid Ali · · Updated · 7 min read

Step-by-Step Guide to Installing Wazuh on Ubuntu Server 24.04: SyncBricks cover
In this article
  1. Quick answer: Wazuh on Ubuntu 24.04 in 6 steps
  2. What gets installed
  3. Requirements
  4. Step 1: Prepare Ubuntu Server 24.04
  5. Step 2: Run the Wazuh installation assistant
  6. Step 3: Verify the services
  7. Step 4: Open the firewall ports
  8. Step 5: Log in to the Wazuh dashboard
  9. Step 6: Stop accidental upgrades
  10. Step 7: Add agents
  11. Troubleshooting common Wazuh install errors
  12. Wazuh 5.0 status
  13. Resumen en español
  14. Related guides

The fastest reliable way to install Wazuh on Ubuntu Server 24.04 is the official installation assistant in all-in-one mode: curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh && sudo bash ./wazuh-install.sh -a. In about 10 to 15 minutes it installs the Wazuh indexer, server and dashboard on one machine, creates the TLS certificates and prints the admin password. You then open https://<server-ip>, log in as admin and start adding agents.

I rewrote this guide in October 2026 for Wazuh 4.14.9, the current stable release, and checked every option and message below against the 4.14.9 installer script. The first version of this post installed each package by hand, which skips the certificate and security initialisation steps the assistant now does for you; a missed step there is the usual reason a manual install ends with a dashboard that never loads.

Quick answer: Wazuh on Ubuntu 24.04 in 6 steps

  1. Create an Ubuntu 24.04 server with at least 4 vCPU, 8 GB RAM and 50 GB disk and a static IP.
  2. Update it: sudo apt update && sudo apt upgrade -y.
  3. Run the assistant: curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh && sudo bash ./wazuh-install.sh -a.
  4. Copy the admin password from the summary at the end.
  5. Open ports 443, 1514, 1515 and 55000 to the networks that need them.
  6. Browse to https://<server-ip>, log in as admin, then deploy agents with WAZUH_MANAGER="<server-ip>".

What gets installed

Component Package Job
Wazuh indexer wazuh-indexer Stores and searches alerts (built on OpenSearch)
Wazuh server wazuh-manager + filebeat Receives agent data, runs decoders and rules, ships alerts to the indexer
Wazuh dashboard wazuh-dashboard Web UI for alerts, agents, compliance and vulnerability views

All-in-one is right for a homelab, a lab or a small business up to roughly 100 endpoints. Beyond that, Wazuh recommends a distributed deployment with the indexer on its own nodes.

Requirements

The assistant checks the hardware and stops with this error if the box is too small:

Your system does not meet the recommended minimum hardware requirements of 4Gb of RAM and 2 CPU cores. If you want to proceed with the installation use the -i option to ignore these requirements.

That is the floor for a test. Wazuh's sizing table for a single host is:

Agents CPU RAM Storage (90 days of alerts)
1-25 4 vCPU 8 GiB 50 GB
26-50 8 vCPU 8 GiB 100 GB
51-100 8 vCPU 8 GiB 200 GB

Ubuntu 24.04 (amd64 or arm64) is on the supported list. Give the server a fixed address before you install, because the certificates are created for it; see how to set a static IP on Ubuntu 24.04.

Step 1: Prepare Ubuntu Server 24.04

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl lsof
sudo hostnamectl set-hostname wazuh

lsof lets the assistant check that ports 443, 1514, 1515, 9200 and 55000 are free. If Nginx or Apache already uses 443, the assistant stops with Port 443 is being used by another process. Remove that service, or install the dashboard on another port with -p 8443.

Step 2: Run the Wazuh installation assistant

curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh
sudo bash ./wazuh-install.sh -a

The assistant adds the Wazuh repository, installs each component, generates certificates, initialises the indexer cluster and starts the services. When it finishes you see a summary like this (timestamps removed):

--- Summary ---
You can access the web interface https://<wazuh-dashboard-ip>:443
    User: admin
    Password: <ADMIN_PASSWORD>
Installation finished.

Save that password. All generated passwords are also stored in wazuh-install-files.tar in the same folder:

sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt

Useful assistant options:

Option What it does
-a All-in-one install (indexer, server, dashboard)
-i Ignore the OS and hardware checks
-o Overwrite components left by an earlier attempt
-p <port> Run the dashboard on another port, for example 8443
-u Uninstall all Wazuh components
-v Verbose output for troubleshooting

Step 3: Verify the services

sudo systemctl status wazuh-indexer wazuh-manager filebeat wazuh-dashboard --no-pager

All four should be active (running). Check that Filebeat can reach the indexer:

sudo filebeat test output

Every line should end in OK, finishing with talk to server... OK.

Step 4: Open the firewall ports

Wazuh's required ports:

Port Protocol Used by
443 TCP Wazuh dashboard (web UI)
1514 TCP Agent connection service
1515 TCP Agent enrollment
55000 TCP Wazuh server API
9200 TCP Wazuh indexer API (keep internal)
1516 TCP Wazuh server cluster (multi-node only)
514 UDP/TCP Syslog collector (disabled by default)

Ubuntu leaves UFW disabled by default. If you use it:

sudo ufw allow OpenSSH
sudo ufw allow 443/tcp
sudo ufw allow 1514/tcp
sudo ufw allow 1515/tcp
sudo ufw allow 55000/tcp
sudo ufw enable

Do not expose 9200 or 55000 to the internet. A good pattern is to put the Wazuh server on a server VLAN behind a firewall such as pfSense and allow 1514 and 1515 only from the networks where your agents live.

Step 5: Log in to the Wazuh dashboard

Open https://<server-ip> and log in as admin with the password from Step 2. Your browser warns about the self-signed certificate; that is expected. Accept it, or install a trusted certificate later.

Change the admin password to one you will remember. It must be 8 to 64 characters with upper and lower case, a number and one of .*+?-:

sudo bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/wazuh-passwords-tool.sh -u admin -p 'MyN3w.Passw0rd'

On an all-in-one host the tool updates the dashboard and Filebeat for you.

Step 6: Stop accidental upgrades

Wazuh recommends disabling its repository after install, so a routine apt upgrade cannot move the indexer, server and dashboard to mismatched versions:

sudo sed -i "s/^deb /#deb /" /etc/apt/sources.list.d/wazuh.list
sudo apt update

Re-enable it only when you deliberately upgrade all components together.

Step 7: Add agents

The easiest way is Agents management > Summary > Deploy new agent in the dashboard, which builds the command for you. The commands below are the same ones it produces.

Ubuntu or Debian agent

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && sudo chmod 644 /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list
sudo apt update
sudo WAZUH_MANAGER="10.0.0.2" apt install -y wazuh-agent
sudo systemctl daemon-reload
sudo systemctl enable --now wazuh-agent

Replace 10.0.0.2 with your Wazuh server's IP or host name. Then hold the agent so it never gets ahead of the manager:

echo "wazuh-agent hold" | sudo dpkg --set-selections

Windows agent

Download wazuh-agent-4.14.9-1.msi from the Wazuh Windows agent page, then in an administrator PowerShell in the download folder:

msiexec.exe /i .\wazuh-agent-4.14.9-1.msi /q WAZUH_MANAGER="10.0.0.2"
Start-Service wazuhsvc

Confirm the agent is connected

On the Wazuh server:

sudo /var/ossec/bin/agent_control -l

The new agent should be listed as Active. It also appears in the dashboard within a minute. Keep agent versions equal to or lower than the manager version.

Troubleshooting common Wazuh install errors

"Wazuh dashboard server is not ready yet": normal for a minute or two after a start. If it stays, the dashboard cannot reach the indexer. Check sudo systemctl status wazuh-indexer, then the logs:

sudo journalctl -u wazuh-dashboard | grep -i -E "error|warn"
sudo grep -i -E "error|warn" /var/log/wazuh-indexer/wazuh-cluster.log

On small VMs a frequent cause is the indexer running short of memory and failing to start, so give the VM 8 GB if you can.

"Wazuh server API seems to be down": the manager is stopped. Run sudo systemctl restart wazuh-manager and check /var/ossec/logs/ossec.log.

No alerts in the dashboard: run sudo filebeat test output. If it fails, Filebeat cannot talk to the indexer on 9200.

"Wazuh indexer is already installed in this node or some of its files have not been removed": a failed earlier run left files behind. Re-run with overwrite, or uninstall and start clean:

sudo bash ./wazuh-install.sh -a -o
# or
sudo bash ./wazuh-install.sh -u

"Another process is using APT": unattended upgrades are running. The assistant waits and retries; let it finish rather than killing the lock.

Agent shows "Never connected" or "Disconnected": the agent cannot reach 1514/1515 on the server. Test from the agent with nc -zv <server-ip> 1514, check firewalls in between, and confirm the address in /var/ossec/etc/ossec.conf under <client><server><address>.

Wazuh 5.0 status

Wazuh 5.0.0 is at release candidate stage (rc1, October 2026) on GitHub. For production stay on 4.14.x. When 5.0 ships I will update this guide with the upgrade path.

Resumen en español

Para instalar Wazuh en Ubuntu Server 24.04: ejecute curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh && sudo bash ./wazuh-install.sh -a, guarde la contraseña de admin que aparece al final, abra los puertos 443, 1514, 1515 y 55000 y entre en https://<ip-del-servidor>. Necesita al menos 4 vCPU y 8 GB de RAM.

Frequently asked questions

How do I install Wazuh on Ubuntu 24.04?+

Download the official installation assistant and run it in all-in-one mode: curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh && sudo bash ./wazuh-install.sh -a. It installs the Wazuh indexer, server (manager plus Filebeat) and dashboard on one host, generates certificates and prints the admin password at the end. Then open https://your-server-ip and log in as admin.

What are the minimum requirements for Wazuh all-in-one?+

The installation assistant refuses to run with fewer than 2 CPU cores and about 4 GB of RAM unless you add -i to ignore the check. Wazuh's own sizing for a single host is 4 vCPU, 8 GiB RAM and 50 GB of storage for 1 to 25 agents with 90 days of alerts, and 8 vCPU, 8 GiB RAM and 100 to 200 GB for 26 to 100 agents.

Which ports does Wazuh use?+

Agents connect to the Wazuh server on 1514/TCP and enrol on 1515/TCP. The Wazuh server API listens on 55000/TCP, the Wazuh indexer API on 9200/TCP (cluster traffic on 9300-9400/TCP), and the dashboard on 443/TCP. 1516/TCP is used only between Wazuh server cluster nodes, and 514 only if you enable the syslog collector.

What is the default Wazuh dashboard password?+

There is no fixed default password for an assistant install. The assistant generates random passwords and prints the admin one at the end. You can read all of them later with sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt in the folder where you ran the installer, and change them with wazuh-passwords-tool.sh.

Is Wazuh free?+

Yes. Wazuh is open source (GPLv2) and free to self-host, with no agent limit. Wazuh Inc. sells a hosted Wazuh Cloud service and support plans, but the software you install with the assistant has no licence fee.

Should I install Wazuh 5.0 yet?+

Not in production. As of October 2026 the stable release is 4.14.9 and 5.0.0 is still a release candidate on GitHub. Stay on 4.14 and plan the move to 5.0 after it is released and the upgrade notes are published.

Sources

  1. Wazuh quickstart, Wazuh documentation
  2. Wazuh architecture and required ports, Wazuh documentation
  3. Installing Wazuh agents on Linux endpoints, Wazuh documentation
  4. Installing Wazuh agents on Windows endpoints, Wazuh documentation
  5. Password management, Wazuh documentation
  6. Wazuh dashboard troubleshooting, Wazuh documentation
  7. wazuh/wazuh releases, GitHub (Wazuh)

Related videos

Video library
  • Cloud and Self-Hosting

    Set a Static IP and Hostname on Ubuntu Server 24.04 (Netplan)

    · 9:02 · 1.6K views

    Watch on YouTube
  • Cloud and Self-Hosting

    Ubuntu Server Auto Updates with Crontab | Automate System Updates on Ubuntu 24.04

    · 6:17 · 308 views

    Watch on YouTube
  • Cloud and Self-Hosting

    How to Set Static IP on Ubuntu Server | Netplan Configuration (Ubuntu 24.04)

    · 3:33 · 2.7K views

    Watch on YouTube