Skip to main content
This integration connects to deployments that expose the Wazuh server REST API and support username-and-password authentication through:Β POST /security/user/authenticateBefore publishing this section, add the Wazuh versions formally validated by the AirMDR Engineering or Integration team:Β Supported Wazuh versions: <Add validated version range>
The setup instructions in this guide follow the current Wazuh server API and RBAC interface. Menu names can vary slightly between Wazuh releases.
The integration requires:
  • Wazuh server API username
  • Wazuh server API password
  • Wazuh server API Base URL
  • SSL verification preference
AirMDR submits the configured username and password to:Β POST /security/user/authenticate
Wazuh returns a JWT that is used as a bearer token for subsequent API requests.

Role-based access

Wazuh RBAC controls access to API endpoints through users, roles, policies, actions, and resources. Wazuh recommends applying least privilege so that a user can access only the endpoints and resources it requires.

Read and investigation permissions

Assign the following actions only when the corresponding AirMDR skills require them:
The current Wazuh RBAC reference marks CIS-CAT functionality as deprecated from Wazuh 5.0. IncludeΒ ciscat:readΒ only for deployments and skills that still use the corresponding endpoints.

Response permissions

Add the following permissions only when the corresponding AirMDR response skills are enabled:
active-response:commandΒ permits operational actions on monitored endpoints. Assign it only when AirMDR response skills require it and after receiving the appropriate security approval.

Pre-requisites

Users must have Administrator access to theΒ Wazuh dashboard with sufficient privileges to create an API user.
Ensure that the Wazuh manager and Wazuh server API are operational.
Allow the configured Wazuh API port through applicable firewalls. The default port isΒ 55000/TCPUse a trusted TLS certificate when SSL verification is enabled.
The Wazuh dashboard URL and the Wazuh server API URL are different. AirMDR requires theΒ Wazuh server API URL, typicallyΒ https://<wazuh-manager>:55000.

Setup Steps

1

Create a dedicated Wazuh API user

  1. Sign in to the Wazuh dashboard using an administrator account.
  2. Open the navigation menu.
  3. Navigate toΒ Server managementΒ β†’Β SecurityΒ β†’Β Users.
  4. ClickΒ Create userΒ orΒ Add new user, depending on the Wazuh version.
  5. Enter a dedicated username, for example:Β airmdr-api.
  6. Enter and confirm a strong password. Wazuh requires API user passwords to contain between 8 and 64 characters, including uppercase and lowercase letters, a number, and a symbol.
  7. Save the user.
  8. Securely record the username and password. These values must be entered in AirMDR.
    Do not use the defaultΒ wazuhΒ orΒ wazuh-wuiΒ administrative accounts for the AirMDR integration.
    Create or manage the API user underΒ Server management β†’ Security. TheΒ Indexer management β†’ Security β†’ Internal usersΒ area primarily manages dashboard and indexer identities and should not be confused with Wazuh server API RBAC.
2

Create the required API policies

  1. In the Wazuh dashboard, navigate to Server managementΒ β†’Β SecurityΒ β†’Β Policies.
  2. ClickΒ Create policy.
  3. Enter a descriptive policy name, such as airmdr-investigation-read.
  4. Set the policy effect to allow.
  5. Add the read actions required by the AirMDR skills, such as:
    agent:read syscheck:read rootcheck:read sca:read syscollector:read rules:read decoders:read mitre:read group:read cluster:read manager:read
  6. Select the Wazuh resources that AirMDR is permitted to access. For access to all applicable agents, groups, and nodes, the corresponding resource definitions can use wildcards such as:
    agent:id:* agent:group:* group:id:* node:id:*
  7. Save the policy.
  8. If response skills are required, create a separate policy, for example: airmdr-response-actions.
  9. Add only the approved response actions to the response policy.
    Keep investigation permissions and response permissions in separate policies. This makes access reviews and troubleshooting easier.
3

Create a role and attach the policies

  1. Navigate to Server managementΒ β†’Β SecurityΒ β†’Β Roles.Β 
  2. ClickΒ Create role.
  3. Enter a role name, for example: airmdr-integration.
  4. Attach theΒ airmdr-investigation-readΒ policy.
  5. If response actions are approved, attach theΒ airmdr-response-actionsΒ policy.
  6. Save the role.
4

Assign the role to the API user

  1. Navigate toΒ Server managementΒ β†’Β SecurityΒ β†’Β Users.
  2. Open theΒ airmdr-apiΒ user.
  3. Select the role-assignment option.
  4. Assign theΒ airmdr-integrationΒ role.
  5. Save the changes.
  6. Confirm that the user shows the assigned role.
    Wazuh permissions are endpoint-specific. A successful authentication does not confirm that the user is authorized to run every AirMDR skill.
5

Determine the Base URL

The Base URL is not generated in the Wazuh dashboard. It is constructed from the reachable Wazuh manager API address and configured API port.Use the following format:Β https://<WAZUH_MANAGER_HOSTNAME_OR_IP>:<API_PORT>Example:Β https://wazuh-manager.example.com:55000The default Wazuh server API port isΒ 55000. It can be changed inΒ /var/ossec/api/configuration/api.yaml

Wazuh Credential Reference Table

Validate Connectivity

From a system that can reach the Wazuh manager, run:
A successful request returns a JWT. TheΒ -kΒ option bypasses certificate validation and corresponds conceptually to settingΒ Verify SSLΒ toΒ false.

Configure Wazuh in AirMDR Integrations Dashboard

  1. Navigate to AirMDR, provide the credentials and click Login
  2. Navigate to the AirMDR Integrations Dashboard in the left navigation pane and select ADMIN β†’ Integrations.
  3. Use the search option, enter the keyword β€œWazuh”, select the Connections tab, and click + New Connection button.
  4. Use the following values in the AirMDR integration configuration screen:
    Use the WazuhΒ server API URL, not the Wazuh dashboard URL. The default Wazuh server API port isΒ 55000.
    1. InΒ Remote Agent, select an AirMDR Remote Agent when the Wazuh server API is hosted on a private network or is not directly accessible from AirMDR. Ensure that the selected Remote Agent can reach the configured WazuhΒ Base URLΒ and API port.
    2. InΒ Expiry, select the date on which AirMDR should treat the stored Wazuh credentials as expired, according to your organisation’s credential-rotation policy.
      TheΒ ExpiryΒ setting does not rotate or expire the password in Wazuh automatically. After rotating the password in Wazuh, update the connection credentials in AirMDR.
  5. Click Save.

Integration Requirements

Required Permissions

Create a dedicated Wazuh API user for AirMDR and assign RBAC policies that include both the requiredΒ actionΒ andΒ resource scope.
The permission format is: RBAC action β†’ resource
For Example: agent:read β†’ agent:id:*, agent:group:*
The asterisk (*) grants access to all resources of that type. Replace wildcard resources with specific agent, group, node, role, policy, or user IDs when AirMDR requires access to only part of the Wazuh environment.

Mandatory connection-test permission

AirMDR validates the connection by calling: GET /manager/info
Therefore, every AirMDR Wazuh connection requires: manager:read β†’ ::*
This permission is required for connection validation even when none of the enabled skills retrieve Wazuh manager information.

Skills provided by this Integration

To view the details of Input Parameters and Output for the respective skills
  • Go to AirMDR β†’ Wazuh Integration page.
  • Select the Skills tab and click on the required listed skills.

Additional Information

Wazuh API logsWazuh server API activity is recorded in:Β /var/ossec/logs/api.logThe default API log level isΒ info. Supported levels include:
Wazuh supports plain-text and JSON API log formats.Β Wazuh API logging configurationExample API log:Β 2026/08/19 12:30:10 INFO: airmdr-api 10.10.20.15 "POST /security/user/authenticate" with parameters {"raw": "true"} and body {} done in 0.210s: 200Example authorized request:Β 2026/08/19 12:30:11 INFO: airmdr-api 10.10.20.15 "GET /agents" with parameters {} and body {} done in 0.095s: 200
  • UseΒ infoΒ for normal operation.
  • Temporarily useΒ debugΒ when investigating an integration issue.
  • Return toΒ infoΒ after troubleshooting to reduce unnecessary log volume.
  • Review repeatedΒ 401,Β 403,Β 429, andΒ 5xxΒ responses.
  • Do not include passwords or JWT values in troubleshooting tickets or shared logs.

βœ… Do

  • Create a dedicated Wazuh API user for AirMDR.
  • Apply least-privilege policies based on enabled skills.
  • Use a trusted TLS certificate.
  • KeepΒ Verify SSLΒ set toΒ trueΒ whenever possible.
  • Restrict the API port to approved AirMDR or Remote Agent source addresses.
  • Store and rotate the password according to organizational policy.
  • Monitor authentication, authorization, and response-action events.

❌ Don’t

  • Using the defaultΒ wazuhΒ orΒ wazuh-wuiΒ account.
  • Assigning administrator access only to avoid permission errors.
  • Reusing a personal administrator account.
  • Disabling SSL verification permanently.
  • Exposing portΒ 55000Β directly to the public internet.
  • Sharing API credentials or JWTs in documentation, screenshots, tickets, or logs.
  • Granting response permissions when the integration uses only read operations.
  • πŸ“§ Contact AirMDR Support through your designated support channel.
  • πŸ” Rotate credentials (dedicated API-user password) regularly. Recommended cadence:Β As per your internal security policy
  • πŸ”„ Reconnect with AirMDR immediately when secrets are changed.
Certificate maintenance
  • Monitor the Wazuh API certificate expiration date.
  • Renew the certificate before it expires.
  • Ensure that the certificate contains the hostname used in the AirMDR Base URL.
  • Test the integration after certificate or certificate-authority changes.
Permission reviews
  • Review the assigned policies periodically.
  • Remove permissions for disabled AirMDR skills.
  • Separate read permissions from response permissions.
  • ReviewΒ active-response:commandΒ more frequently because it permits operational actions on endpoints.
  • Revalidate permissions after Wazuh or AirMDR upgrades.
Data exchangedDepending on enabled skills and assigned permissions, AirMDR can retrieve:
  • Wazuh agent information and status
  • Agent groups and assignments
  • File Integrity Monitoring results
  • Rootcheck results
  • Security Configuration Assessment results
  • System and software inventory
  • Wazuh rules and decoders
  • MITRE ATT&CK metadata
  • Wazuh manager and cluster information
When response skills are enabled, AirMDR can send authorized action requests to Wazuh, including agent-management commands and scan requests.Encryption
  • Wazuh server API communication uses HTTPS by default.
  • AirMDR exchanges the configured credentials for a JWT and uses the JWT for subsequent API calls.
  • The connection password is handled as a secret by AirMDR.
  • SSL verification should remain enabled whenever a trusted certificate is available.
  • Wazuh’s certificate files are normally stored under:Β /var/ossec/api/configuration/ssl/
Ports and endpoints