# Wazuh Server API

Wazuh sunucu API'si, bir web tarayıcısından, cURL gibi bir komut satırı aracından veya web istekleri yapabilen herhangi bir betik veya programdan Wazuh yöneticisiyle etkileşime izin veren açık kaynaklı bir RESTful API'dir. Wazuh panosu, Wazuh sunucu altyapısını uzaktan yönetmek için Wazuh sunucu API'sine güvenir. Wazuh sunucu API'sini, aracı ekleme, yöneticiyi veya aracıyı yeniden başlatma veya Dosya Bütünlüğü İzleme (FIM) hakkında ayrıntılara bakma gibi genel görevleri gerçekleştirmek için kullanabilirsiniz.

Wazuh sunucusu API yeteneklerinin listesi şu şekildedir:

- Wazuh acente yönetimi
- Wazuh yönetici kontrolü ve genel bakışı
- Küme denetimi ve genel bakış
- Dosya bütünlüğü izleme denetimi ve araması
- MITRE ATT&CK genel bakış
- Kural seti bilgisi
- Kuralların ve kod çözücülerin test edilmesi ve doğrulanması
- Syscollector bilgisi
- Rol Tabanlı Erişim Kontrolü (RBAC)
- API yönetimi (HTTPS, yapılandırma)
- Kullanıcı yönetimi
- İstatistiksel bilgiler
- Hata işleme
- Uzaktan yapılandırmayı sorgula

# Başlarken

<section id="bkmrk-bu-k%C4%B1lavuz%2C-wazuh-su">Bu kılavuz, Wazuh sunucu API'sini kullanmak için gereken temel bilgileri sağlar.

<section id="bkmrk-wazuh-sunucu-api%27sin">### Wazuh Sunucu API'sini Başlatma ve Durdurma

Wazuh yöneticisini yüklediğinizde, Wazuh sunucu API'si de sürecin bir parçası olarak varsayılan olarak yüklenir. Wazuh yönetici hizmetiyle `<span class="pre">systemctl</span>`veya komutlarını yürüterek Wazuh sunucu API'sini yönetebilir veya izleyebilirsiniz:`<span class="pre">service</span>`  
  
**Systemd**

```
systemctl start/status/stop/restart wazuh-manager
```

  
**SysV Başlatma**

```
service wazuh-manager start/status/stop/restart
```

</section><section id="bkmrk-wazuh-panosu-arac%C4%B1l%C4%B1">### Wazuh Dashboard Aracılığıyla Wazuh Sunucu API'sini Kullanma

Wazuh panosu aracılığıyla Wazuh sunucu API'siyle etkileşim kurabilirsiniz. Bunu yapmak için, yönetici ayrıcalıklarına sahip bir kullanıcıyla Wazuh panosuna giriş yapmanız gerekir. Örneğin, varsayılan `<span class="pre">admin</span>`kullanıcı yönetici ayrıcalıklarına sahiptir. Panodaki Wazuh sunucu API konsoluna erişmek için menü simgesine tıklayın ve **Araçlar** &gt; **API Konsolu'na** gidin .

<div class="wazuh-image-wrapper align-center">![Pano üzerinden Wazuh sunucu API konsoluna erişin](https://documentation.wazuh.com/current/_images/access-wazuh-server-api1.png)</div> **API Konsolu'nda** yöntemi , istek uç noktasını ve herhangi bir sorgu parametresini girin, ardından isteği yürütmek için oynat düğmesine tıklayın. Temel kavramlar hakkında daha fazla bilgi edinmek için Wazuh sunucusu API isteğini ve yanıtını anlama bölümüne bakın.

<div class="wazuh-image-wrapper align-center">![API isteğini yürüt](https://documentation.wazuh.com/current/_images/execute-api-request1.png)</div></section><section id="bkmrk-komut-sat%C4%B1r%C4%B1-arac%C4%B1l%C4%B1">### Komut Satırı Aracılığıyla Wazuh Sunucu API'sine Giriş Yapma

Güvenli erişimi sağlamak için tüm Wazuh sunucu API uç noktaları kimlik doğrulaması gerektirir. Kullanıcılar her istekte bir JSON Web Token (JWT) eklemelidir. JWT, taraflar arasında bilgileri bir JSON nesnesi olarak güvenli bir şekilde iletmek için kompakt ve kendi kendine yeten bir yöntem tanımlayan açık bir standarttır (RFC 7519). [POST /security/user/authenticate](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.login_user) kullanarak Wazuh sunucu API'sine giriş yapmak ve API uç noktalarına erişmek için gerekli bir belirteç edinmek için aşağıdaki adımları izleyin:

1. Wazuh sunucu API'sine bir kullanıcı kimlik doğrulama POST isteği göndermek ve döndürülen JWT'yi değişkende depolamak için aşağıdaki komutu çalıştırın `<span class="pre">TOKEN</span>`. `<span class="pre"><WAZUH_API_USER></span>`ve'yi `<span class="pre"><WAZUH_API_PASSWORD></span>`kimlik bilgilerinizle değiştirin.
    
    ```
    TOKEN=$(curl -u <WAZUH_API_USER>:<WAZUH_API_PASSWORD> -k -X POST "https://localhost:55000/security/user/authenticate?raw=true")
    ```
    
    <p class="callout info">Not:  
    - `<span class="pre">SSL</span>`API'de (HTTPS) etkinleştirilmişse ve varsayılan kendi kendine imzalanmış sertifikaları kullanıyorsa, sunucu bağlantı doğrulamasını önlemek için parametreyi eklemeniz gerekir . cURL komutları aracılığıyla kimlik doğrulaması yaparken sorgu parametresini `<span class="pre">-k</span>`kullanmanızı öneririz `<span class="pre">raw=true</span>`, çünkü belirteci düz metin olarak döndürerek işlemeyi basitleştirir, özellikle uzun JWT'ler için yararlıdır.  
      
    Varsayılan Wazuh sunucusu API kimlik bilgisi 'dir `<span class="pre">wazuh:wazuh</span>`. Ancak Wazuh dağıtımı kurulum betiği kullanılarak gerçekleştirildiyse, Wazuh API kullanıcısı 'dir ve ' komutunu çalıştırarak `<span class="pre">wazuh</span>`parolayı çıkarabilirsiniz .`<span class="pre">wazuh-install-files.tar</span>``<span class="pre">tar</span> <span class="pre">-axf</span> <span class="pre">wazuh-install-files.tar</span> <span class="pre">wazuh-install-files/wazuh-passwords.txt</span> <span class="pre">-O</span> <span class="pre">|</span> <span class="pre">grep</span> <span class="pre">-P</span> <span class="pre">"\'wazuh\'"</span> <span class="pre">-A</span> <span class="pre">1</span>`  
      
    Eğer `<span class="pre">wazuh</span>` şifrenizi geri alamazsanız, kullanıcı şifresini [<span class="doc">sıfırlayabilirsiniz</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/sifre-yonetimi) .</p>
2. Jetonun oluşturulduğunu doğrulayın:
    
    ```
    echo $TOKEN
    ```
    
    Çıktı aşağıdakine benzer uzun bir dize olmalıdır:
    
    <div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
    eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA3ODk4NTEzLCJleHAiOjE3MDc4OTk0MTMsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJ3aGl0ZSJ9.ACcJ3WdV3SnTOC-PV2oGZGCyH3GpStSOu161UHHT7w6eUm_REOP_g8SqqIJDDW0gCcQNJTEECortIuI4zj7nybNhACRlBrDBZoG4Re4HXEpAchyFQXwq0SsZ3HHSj7eJinBF0pJDG0D8d1_LkcoxaX3FpxpsCZ4xzJ492CpnVZLT8qI4
    ```
    
    Kimlik doğrulama başarısız olursa, çıktı bir hata mesajı görüntüler veya boş kalır. Bu gibi durumlarda, kullanıcı kimlik bilgilerinizi iki kez kontrol edin ve Wazuh sunucu API'sine ağ bağlantınız olduğundan emin olun.
3. Her şeyin beklendiği gibi çalıştığını doğrulamak için bir API isteği gönderin:
    
    ```
    curl -k -X GET "https://localhost:55000/" -H "Authorization: Bearer $TOKEN"
    ```
    
    <div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
    {
        "data": {
            "title": "Wazuh API REST",
            "api_version": "4.7.4",
            "revision": 40717,
            "license_name": "GPL 2.0",
            "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE",
            "hostname": "wazuh-master",
            "timestamp": "2024-05-14T21:34:15Z"},
       "error": 0
    }
    ```
    
    Giriş yaptıktan sonra, aşağıdaki yapıyı kullanarak herhangi bir API uç noktasına erişebilirsiniz. `<span class="pre"><METHOD></span>`İstediğiniz yöntemle ve `<span class="pre"><ENDPOINT></span>`erişmek istediğiniz uç noktaya karşılık gelen dizeyle değiştirin. Bir ortam değişkeni kullanmıyorsanız, `<span class="pre">$TOKEN</span>`elde edilen JWT ile değiştirin.
    
    ```
    curl -k -X <METHOD> "https://localhost:55000/<ENDPOINT>" -H  "Authorization: Bearer $TOKEN"
    ```

</section><section id="bkmrk-betikler-arac%C4%B1l%C4%B1%C4%9F%C4%B1yl">### Scriptler Aracılığıyla Wazuh Sunucu API'sine Giriş Yapma

Bu bölüm, Wazuh sunucusuyla etkileşimleri otomatikleştirmek için temel bir adım olan komut dosyalarını kullanarak Wazuh sunucusu API'sine giriş yapma sürecini ayrıntılı olarak açıklar. Sağlanan örnekler, hem varsayılan ( `<span class="pre">false</span>`) hem de düz metin ( `<span class="pre">true</span>`) `<span class="pre">raw</span>`parametrelerini göstererek gerçek dünya uygulamalarını sergilemeyi amaçlamaktadır. `<span class="pre">raw</span>`Parametre, olarak ayarlandığında `<span class="pre">true</span>`, yanıtın düz metin veya asgari düzeyde işlenmiş bir biçimde olması gerektiği anlamına gelir. Tersine, `<span class="pre">raw</span>`parametre olduğunda `<span class="pre">false</span>`, yanıt ayrıştırma ve entegrasyonu kolaylaştırmak için daha yapılandırılmış bir JSON biçimindedir. Bu komut dosyaları, otomasyon yoluyla operasyonel verimliliğini artırmak isteyen veya özel entegrasyonlar için Wazuh sunucusu API'sine programlı olarak nasıl erişileceğini anlamak isteyen kullanıcılar için tasarlanmıştır.

<section id="bkmrk-python-beti%C4%9Fiyle-otu">#### Python Scriptiyle Oturum Açma

Python betiği kullanarak Wazuh sunucu API'sine kimlik doğrulaması yapabilirsiniz. Aşağıdaki betik, `<span class="pre">wazuh_api_authenticator.py</span>`bir JWT elde etmek için Wazuh sunucu API'siyle kimlik doğrulaması yapar. Daha sonra Wazuh aracılarının durumlarının bir özetini almak için istek başlığındaki belirteci kullanır.

```
#!/usr/bin/env python3

import json
import requests
import urllib3
from base64 import b64encode

# Disable insecure https warnings (for self-signed SSL certificates)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# Configuration
protocol = 'https'
host = 'localhost'
port = 55000
user = '<WAZUH_API_USER>'
password = '<WAZUH_API_PASSWORD>'
login_endpoint = 'security/user/authenticate'

login_url = f"{protocol}://{host}:{port}/{login_endpoint}"
basic_auth = f"{user}:{password}".encode()
login_headers = {'Content-Type': 'application/json',
                 'Authorization': f'Basic {b64encode(basic_auth).decode()}'}

print("\nLogin request ...\n")
response = requests.post(login_url, headers=login_headers, verify=False)
token = json.loads(response.content.decode())['data']['token']
print(token)

# New authorization header with the JWT we got
requests_headers = {'Content-Type': 'application/json',
                    'Authorization': f'Bearer {token}'}

print("\n- API calls with TOKEN environment variable ...\n")

print("Getting API information:")

response = requests.get(f"{protocol}://{host}:{port}/?pretty=true", headers=requests_headers, verify=False)
print(response.text)

print("\nGetting agents status summary:")

response = requests.get(f"{protocol}://{host}:{port}/agents/summary/status?pretty=true", headers=requests_headers, verify=False)
print(response.text)

print("\nEnd of the script.\n")
```

`<span class="pre"><WAZUH_API_USER></span>`ve `<span class="pre"><WAZUH_API_PASSWORD></span>`ifadelerini doğru bilgilerle değiştirin .

Python `<span class="pre">requests</span>`modülünü kurun:

```
python3 -m pip install requests
```

<p class="callout info">Not: Python modülü `<span class="pre">urllib3</span>`sürüm 2.0 ve üzeri yalnızca OpenSSL sürüm 1.1.1 veya üzerini destekler. Sisteminizde daha eski bir OpenSSL sürümü varsa, şunlardan birini yapmanız gerekir:  
  
- OpenSSL'i 1.1.1 veya daha üst bir sürüme yükseltin.  
- `<span class="pre">urllib3</span>`Mevcut OpenSSL sürümünüzle uyumlu bir sürüme geçin .</p>

Uyumluluk sorunlarını önlemek için lütfen yazılım bağımlılıklarınızın düzgün bir şekilde hizalandığından emin olun.

Python betiğini çalıştırın `<span class="pre">wazuh_api_authenticator.py</span>`:

```
python3 wazuh_api_authenticator.py
```

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
Login request ...
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNjAyMjMxNjU2LCJleHAiOjE2MDIyMzUyNTYsInN1YiI6IndhenVoIiwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJ3aGl0ZSJ9.V60_otHPaT4NTkrS6SF3GHva0Z9r5p4mqe5Cn0hk4o4
- API calls with TOKEN environment variable ...
Getting API information:
{
   "data": {
      "title": "Wazuh API REST",
      "api_version": "4.7.4",
      "revision": 40717,
      "license_name": "GPL 2.0",
      "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE",
      "hostname": "wazuh-master",
      "timestamp": "2024-05-14T21:34:15Z"
   },
   "error": 0
}
Getting agents status summary:
{
   "data": {
       "connection": {
           "active": 1,
           "disconnected": 0,
           "never_connected": 0,
           "pending": 0,
           "total": 1
       },
       "configuration": {
           "synced": 1,
           "not_synced": 0,
           "total": 1
       }
   },
   "error": 0
}
End of the script.
```

</section><section id="bkmrk-bash-beti%C4%9Fiyle-oturu">#### Bash Script Oturum Açma

Ayrıca bir Bash betiği kullanarak Wazuh sunucu API'sine kimlik doğrulaması yapabilirsiniz. Aşağıdaki betik, `<span class="pre">wazuh_api_authenticator.sh</span>`bir JWT elde etmek için Wazuh sunucu API'siyle kimlik doğrulaması yapar. Daha sonra Wazuh aracıları tarafından kullanılan işletim sistemlerinin bir özetini almak için istek başlığındaki belirteci kullanır.

```
#!/bin/bash

echo -e "\n- Getting token...\n"

TOKEN=$(curl -u <WAZUH_API_USER>:<WAZUH_API_PASSWORD> -k -X POST "https://localhost:55000/security/user/authenticate?raw=true")

echo -e "\n- API calls with TOKEN environment variable ...\n"

echo -e "Getting default information:\n"

curl -k -X GET "https://localhost:55000/?pretty=true" -H  "Authorization: Bearer $TOKEN"

echo -e "\n\nGetting /agents/summary/os:\n"

curl -k -X GET "https://localhost:55000/agents/summary/os?pretty=true" -H  "Authorization: Bearer $TOKEN"

echo -e "\n\nEnd of the script.\n"
```

`<span class="pre"><WAZUH_API_USER></span>`ve `<span class="pre"><WAZUH_API_PASSWORD></span>`öğesini doğru kimlik bilgileriyle değiştirin

Bash betiğini çalıştırın `<span class="pre">wazuh_api_authenticator.sh</span>`:

```
bash wazuh_api_authenticator.sh
```

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
- Getting token...
Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3059  100  3059    0     0  17089      0 --:--:-- --:--:-- --:--:-- 17089
- API calls with TOKEN environment variable ...
Getting default information:
{
   "data": {
      "title": "Wazuh API REST",
      "api_version": "4.7.4",
      "revision": 40717,
      "license_name": "GPL 2.0",
      "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE",
      "hostname": "wazuh-master",
      "timestamp": "2024-05-14T21:34:15Z"
   },
   "error": 0
}
Getting /agents/summary/os:
{
    "data": {
        "affected_items": [
            "windows"
        ],
        "total_affected_items": 1,
        "total_failed_items": 0,
        "failed_items": []
    },
    "message": "Showing the operative system of all specified agents",
    "error": 0
}
End of the script.
```

</section></section><section id="bkmrk-wazuh-sunucusu-api-%C4%B0">### Wazuh Sunucusu API İsteğini ve Yanıtını Anlama

</section></section><section id="bkmrk-standart-bir-wazuh-s"><section id="bkmrk-standart-bir-wazuh-s-1">Standart bir Wazuh sunucusu API isteği üç temel bileşenden oluşur: istek yöntemi (GET, POST, PUT veya DELETE), erişilen uç noktayı belirten API URL'si ve yetkilendirme başlığı. Bu başlık, isteği doğrulamak ve yetkilendirmek için bir JWT içermelidir. Aşağıda bir cURL isteği örneği verilmiştir:

```
curl -k -X GET "https://localhost:55000/agents/summary/os?pretty=true" -H  "Authorization: Bearer $TOKEN"
```

Her istek için cURL komutu aşağıdaki alanları içerir:

<table class="docutils align-default"><thead><tr class="row-odd"><th class="head">**Alan**

</th><th class="head">**Tanım**

</th></tr></thead><tbody><tr class="row-even"><td>`<span class="pre">-X</span> <span class="pre">GET/POST/PUT/DELETE</span>`

</td><td>HTTP sunucusuyla iletişim kurarken kullanılacak bir istek yöntemi belirtin.

</td></tr><tr class="row-odd"><td>`<span class="pre">http://<WAZUH_MANAGER_IP>:55000/<ENDPOINT></span>` `<span class="pre">https://<WAZUH_MANAGER_IP>:55000/<ENDPOINT></span>`

</td><td>Kullanılacak API URL'si. API'de SSL'nin aktif olup olmadığına bağlı olarak `<span class="pre">http</span>`belirtin .`<span class="pre">https</span>`

</td></tr><tr class="row-even"><td>`<span class="pre">-H</span> <span class="pre">"Authorization:</span> <span class="pre">Bearer</span> <span class="pre"><YOUR_JWT_TOKEN>"</span>`

</td><td>JWT'yi belirtmek için isteğe ek bir başlık ekleyin.

</td></tr><tr class="row-odd"><td>`<span class="pre">-k</span>`

</td><td>SSL sertifika hatalarını bastırın (yalnızca varsayılan kendi kendine imzalı sertifikaları kullanıyorsanız).

</td></tr></tbody></table>

Tüm yanıtlar JSON formatındadır ve çoğu şu yapıyı takip eder:

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 13.4756%;">**Alan**

</th><th class="head" style="width: 36.4809%;">**İsteğe bağlı alt alanlar**

</th><th class="head" style="width: 49.9358%;">**Tanım**

</th></tr></thead><tbody><tr class="row-even"><td rowspan="4" style="width: 13.4756%;">veri

</td><td style="width: 36.4809%;">etkilenen\_öğeler

</td><td style="width: 49.9358%;">İstekte başarıyla etkilenen öğelerin her birini listeleyin.

</td></tr><tr class="row-odd"><td style="width: 36.4809%;">toplam\_etkilenen\_öğeler

</td><td style="width: 49.9358%;">Başarıyla etkilenen öğelerin toplam sayısı.

</td></tr><tr class="row-even"><td style="width: 36.4809%;">başarısız\_öğeler

</td><td style="width: 49.9358%;">İstekteki başarısız olan her öğeyi içeren liste.

</td></tr><tr class="row-odd"><td style="width: 36.4809%;">toplam\_başarısız\_öğeler

</td><td style="width: 49.9358%;">Başarısız olan öğelerin toplam sayısı.

</td></tr><tr class="row-even"><td style="width: 13.4756%;">mesaj

</td><td style="width: 36.4809%;"> </td><td style="width: 49.9358%;">Sonuç açıklaması.

</td></tr><tr class="row-odd"><td style="width: 13.4756%;">hata

</td><td style="width: 36.4809%;"> </td><td style="width: 49.9358%;">HTTP yanıtları için `<span class="pre">200</span>`, yanıtın tamamlanmış ( `<span class="pre">0</span>`), başarısız ( `<span class="pre">1</span>`) veya kısmi ( `<span class="pre">2</span>`) olup olmadığını belirler. HTTP `<span class="pre">4xx</span>`veya `<span class="pre">5xx</span>`yanıtları için, başarısızlıkla ilgili hata kodunu belirler.

</td></tr></tbody></table>

- Varsayılan olarak, veri koleksiyonları içeren yanıtlar en fazla 500 öğe döndürür. Büyük koleksiyonlar arasında yineleme yapmak için `<span class="pre">offset</span>`ve parametrelerini kullanabilirsiniz . Parametre 100.000 öğeye kadar izin verse de, zaman aşımı ve aşırı büyük yanıtlar gibi beklenmeyen davranışları önlemek için varsayılan 500 öğe sınırını aşmamanızı öneririz. Dikkatli kullanın.`<span class="pre">limit</span>``<span class="pre">limit</span>`
- Tüm yanıtlar bir HTTP durum kodu içerir: 2xx (başarılı), 4xx (istemci hatası), 5xx (sunucu hatası), vb.
- Tüm istekler ( ve hariç) JSON yanıtını daha okunabilir bir biçime dönüştürmek için parametreyi kabul eder .`<span class="pre">POST</span> <span class="pre">/security/user/authenticate</span>``<span class="pre">POST</span> <span class="pre">/security/user/authenticate/run_as</span>``<span class="pre">pretty</span>`
- Wazuh sunucu API'si, seçilen günlük biçimine bağlı olarak günlükleri `<span class="pre">api.log</span>`veya `<span class="pre">api.json</span>`dosyalarında depolar. Bu günlük dosyaları Wazuh sunucusunda bulunur . [<span class="std std-ref">Wazuh API yapılandırma dosyasında</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/yapilandirma)`<span class="pre">/var/ossec/logs/</span>` ayrıntı düzeyini değiştirebilirsiniz .
- Wazuh API günlükleri varsayılan olarak zamana göre döndürülür. Döndürme yalnızca günlüğe yeni bir giriş eklendikten sonra gerçekleşir. Örneğin, zaman tabanlı döndürme, her gece yarısı olmasa da farklı bir günde yeni bir giriş eklendiğinde tetiklenir. Döndürülmüş günlükler . `<span class="pre">/var/ossec/logs/api/<year>/<month>/</span>`kullanılarak depolanır ve sıkıştırılır `<span class="pre">gzip</span>`.
- `<span class="pre">request_timeout</span>`Sunucu API yapılandırma dosyasının alanında tanımlanan zaman süresinden sonra yanıt alınmazsa tüm Wazuh sunucu API istekleri iptal edilir `<span class="pre">/var/ossec/api/configuration/api.yaml</span>`. Bu zaman aşımını devre dışı bırakmak için parametreyi kullanabilirsiniz ; bu, özellikle [PUT /agents/upgrade](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_upgrade_agents)`<span class="pre">wait_for_complete</span>` gibi beklenen süreyi aşabilecek çağrılar için yararlıdır .

<p class="callout info">Not: Maksimum API yanıt süresini ayarlamak için Wazuh sunucusundaki dosyadaki `<span class="pre">request_timeout</span>`değeri güncelleyin.`<span class="pre">/var/ossec/api/configuration/api.yaml</span>`</p>

Hata içermeyen örnek yanıt (HTTP durum kodu 200):

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      "master-node",
      "worker1"
    ],
    "total_affected_items": 2,
    "failed_items": [],
    "total_failed_items": 0
  },
  "message": "Restart request sent to all specified nodes",
  "error": 0
}
```

Hatalı örnek yanıt (HTTP durum kodu 200):

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [],
    "total_affected_items": 0,
    "total_failed_items": 4,
    "failed_items": [
      {
        "error": {
          "code": 1707,
          "message": "Cannot send request, agent is not active",
          "remediation": "Please, check non-active agents connection and try again. Visit
          https://documentation.wazuh.com/current/user-manual/registering/index.html and
          https://documentation.wazuh.com/current/user-manual/agents/agent-connection.html
          to obtain more information on registering and connecting agents"
        },
        "id": [
          "001",
          "002",
          "009",
          "010"
        ]
      },
    ]
  },
  "message": "Restart command was not sent to any agent",
  "error": 1
}
```

Kısmi yanıt örneği (HTTP durum kodu 200):

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "ip": "10.0.0.9",
        "id": "001",
        "name": "Carlos",
        "dateAdd": "2020-10-07T08:14:32Z",
        "node_name": "unknown",
        "registerIP": "10.0.0.9",
        "status": "never_connected"
      }
    ],
    "total_affected_items": 1,
    "total_failed_items": 1,
    "failed_items": [
      {
        "error": {
          "code": 1701,
          "message": "Agent does not exist",
          "remediation": "Please, use `GET /agents?select=id,name` to find all available agents"
        },
        "id": [
          "005"
        ]
      }
    ]
  },
  "message": "Some agents information was not returned",
  "error": 2
}
```

Yetkisiz bir isteği bildirmek için örnek yanıt (HTTP durum kodu 401):

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "title": "Unauthorized",
  "detail": "The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required.",
}
```

İzin reddedildi hatasını (HTTP durum kodu 403) bildirmek için örnek yanıt:

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "title": "Permission Denied",
  "detail": "Permission denied: Resource type: *:*",
  "remediation": "Please, make sure you have permissions to execute the current request. For more information on how to set up permissions, please visit https://documentation.wazuh.com/current/user-manual/api/rbac/configuration.html",
  "error": 4000,
  "dapi_errors": {
    "unknown-node": {
      "error": "Permission denied: Resource type: *:*"
    }
  }
}
```

</section><section id="bkmrk-wazuh-sunucu-api-kul">### Wazuh Sunucu API Kullanımına İlişkin Pratik Örnekler

Bu bölümde, cURL, Python betikleri ve PowerShell betikleri kullanarak Wazuh sunucu API'sine çeşitli istek türlerinin nasıl gönderileceğini gösteriyoruz. Bu örnekler, öngörebileceğiniz daha gelişmiş kullanım durumları için temel bilgi görevi görür.

<section id="bkmrk-curl-curl%2C-http%2Fhttp">#### CURL

cURL, HTTP/HTTPS istekleri ve komutları göndermek için bir komut satırı aracıdır. Birçok Linux ve macOS uç noktasına önceden yüklenmiş olarak gelir ve kullanıcıların Wazuh sunucu API'siyle doğrudan komut satırından etkileşim kurmasını sağlar. Herhangi bir uç noktayı yürütmeden önce bir JWT edinmeniz gerektiğini unutmayın. Aşağıdaki örneklerde, belirteci almak ve onu bir ortam değişkeni ( `<span class="pre">$TOKEN</span>`) olarak kaydetmek için ham seçeneğini kullanıyoruz. JWT edinmeyle ilgili ayrıntılı talimatlar için lütfen <span class="std std-ref">başlarken</span> bölümüne bakın.

<section id="bkmrk-get-a%C5%9Fa%C4%9F%C4%B1daki-get-is">##### GET

Aşağıdaki GET isteği, Wazuh sunucu API'si hakkında başlık, sürüm, revizyon, lisans, ana bilgisayar adı ve geçerli zaman damgası gibi temel bilgileri alır:

```
# curl -k -X GET "https://localhost:55000/" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
    "data": {
        "title": "Wazuh API",
        "api_version": "4.7.4",
        "revision": 40717,
        "license_name": "GPL 2.0",
        "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE",
        "hostname": "wazuh-master",
        "timestamp": "2024-05-14T21:34:15Z"
    },
    "error": 0
}
```

</section><section id="bkmrk-post-wazuh-sunucusu-">##### POST

Wazuh sunucusu API'sine yapılan aşağıdaki POST isteği, istek gövdesinde kullanıcı adı `<span class="pre">test_user</span>`ve parola belirtilerek Wazuh sunucusunda yeni bir kullanıcı oluşturur .`<span class="pre">Test_user1</span>`

```
curl -k -X POST "https://localhost:55000/security/users" -H  "Authorization: Bearer $TOKEN" -H  "Content-Type: application/json" -d "{\"username\":\"test_user\",\"password\":\"Test_user1\"}"
```

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "username": "test_user",
        "roles": []
      }
    ],
    "total_affected_items": 1,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "User was successfully created",
  "error": 0
}
```

</section><section id="bkmrk-delete-wazuh-sunucus">##### DELETE

Wazuh sunucusu API'sine gönderilen aşağıdaki DELETE isteği, Wazuh sunucusundaki tüm aracı gruplarını siler.

```
curl -k -X DELETE "https://localhost:55000/groups?pretty=true&groups_list=all" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      "group1",
      "group2",
      "group3"
    ],
    "total_affected_items": 3,
    "total_failed_items": 0,
    "failed_items": [],
    "affected_agents": [
      "001",
      "002",
      "003",
      "005",
      "006",
      "007",
      "008",
      "009",
      "010"
    ]
  },
  "message": "All selected groups were deleted",
  "error": 0
}
```

</section></section><section id="bkmrk-python-ba%C4%9Flant%C4%B1s%C4%B1-ke">#### Python

Bağlantısı kesilen aracılar hakkında, son canlı tutma süreleri ve kimlikleri dahil olmak üzere bilgi almak için bir Python betiği kullanabilirsiniz. Bunu yapmak için, betik önce bir taşıyıcı belirteci almak için temel kimlik doğrulamasını kullanarak Wazuh sunucu API'siyle kimlik doğrulaması yapar, ardından gerekli bilgileri almak için bir GET isteği yapar.

Aşağıdaki Python betiğini şu şekilde kaydedin `<span class="pre">get_agent_keep_alive.py</span>`:

```
#!/usr/bin/env python3

import json
from base64 import b64encode

import requests  # To install requests, use: pip install requests
import urllib3

# Configuration
endpoint = '/agents?select=lastKeepAlive&select=id&status=disconnected'

protocol = 'https'
host = '<WAZUH_SERVER_API_IP>'
port = '<WAZUH_SERVER_API_PORT>'
user = '<WAZUH_API_USER>'
password = '<WAZUH_API_PASSWORD>'

# Disable insecure https warnings (for self-signed SSL certificates)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# Functions
def get_response(request_method, url, headers, verify=False, body=None):
    """Get API result"""
    if body is None:
        body = {}

    request_result = getattr(requests, request_method.lower())(url, headers=headers, verify=verify, data=body)

    if request_result.status_code == 200:
        return json.loads(request_result.content.decode())
    else:
        raise Exception(f"Error obtaining response: {request_result.json()}")

# Variables
base_url = f"{protocol}://{host}:{port}"
login_url = f"{base_url}/security/user/authenticate"
basic_auth = f"{user}:{password}".encode()
headers = {
           'Authorization': f'Basic {b64encode(basic_auth).decode()}',
           'Content-Type': 'application/json'
           }
headers['Authorization'] = f'Bearer {get_response("POST", login_url, headers)["data"]["token"]}'

# Request
response = get_response("GET", url=base_url + endpoint, headers=headers)

# WORK WITH THE RESPONSE AS YOU LIKE
print(json.dumps(response, indent=4, sort_keys=True))
```

Aşağıdaki değişkenleri değiştirin:

- `<span class="pre"><WAZUH_SERVER_API_IP></span>`Wazuh sunucunuzun IP adresi ile.
- `<span class="pre"><WAZUH_SERVER_API_PORT></span>`Wazuh sunucusu API port numarasıyla (varsayılan olarak port 5500).
- `<span class="pre"><WAZUH_API_USER></span>`ve `<span class="pre"><WAZUH_API_PASSWORD></span>`doğru belgelerle.

Python `<span class="pre">requests</span>`modülünü kurun:

```
python3 -m pip install requests
```

<p class="callout info">Not: Python modülü `<span class="pre">urllib3</span>`sürüm 2.0 ve üzeri yalnızca OpenSSL sürüm 1.1.1 veya üzerini destekler. Sisteminizde daha eski bir OpenSSL sürümü varsa, şunlardan birini yapmanız gerekir:  
- OpenSSL'i 1.1.1 veya daha üst bir sürüme yükseltin.  
- `<span class="pre">urllib3</span>`Mevcut OpenSSL sürümünüzle uyumlu bir sürüme geçin.  
Uyumluluk sorunlarını önlemek için lütfen yazılım bağımlılıklarınızın düzgün bir şekilde hizalandığından emin olun.</p>

Bağlantısı kesilen aracılar hakkında bilgi almak için Python betiğini çalıştırın:

```
python3 get_agent_keep_alive.py
```

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
    "data": {
        "affected_items": [
            {
                "id": "009",
                "lastKeepAlive": "2020-05-23T12:39:50Z"
            },
            {
                "id": "010",
                "lastKeepAlive": "2020-05-23T12:39:50Z"
            }
        ],
        "failed_items": [],
        "total_affected_items": 2,
        "total_failed_items": 0
    },
    "message": "All selected agents information was returned",
    "error": 0
}
```

</section><section id="bkmrk-g%C3%BC%C3%A7-kabu%C4%9Fu-ba%C4%9Flant%C4%B1s">#### Güç Kabuğu

Bağlantısı kesilen aracıların son canlı tutma süreleri ve kimlikleri dahil olmak üzere ayrıntıları almak için bir PowerShell betiği de kullanabilirsiniz. Bunu yapmak için, betik önce bir taşıyıcı belirteci almak için temel kimlik doğrulamasını kullanarak Wazuh sunucu API'siyle kimlik doğrulaması yapar, ardından gerekli bilgileri almak için bir GET isteği yapar.

Aşağıdaki PowerShell betiğini şu şekilde kaydedin `<span class="pre">get_agent_keep_alive.ps1</span>`:

```
function Ignore-SelfSignedCerts {
    add-type @"
        using System.Net;
        using System.Security.Cryptography.X509Certificates;

        public class PolicyCert : ICertificatePolicy {
            public PolicyCert() {}
            public bool CheckValidationResult(
                ServicePoint sPoint, X509Certificate cert,
                WebRequest wRequest, int certProb) {
                return true;
            }
        }
"@
    [System.Net.ServicePointManager]::CertificatePolicy = new-object PolicyCert
}

# Configuration
$endpoint = "/agents?select=lastKeepAlive&select=id&status=disconnected"
$method = "get"

$protocol = "https"
$host_name = "<WAZUH_SERVER_API_IP>"
$port = "<WAZUH_SERVER_API_PORT>"
$username = "<WAZUH_API_USER>"
$password = "<WAZUH_API_PASSWORD>"

# Variables
$base_url = $protocol + "://" + $host_name + ":" + $port
$login_url = $base_url + "/security/user/authenticate"
$endpoint_url = $base_url + $endpoint
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", 'application/json')
$headers.Add("Authorization", "Basic " + $base64AuthInfo)

Ignore-SelfSignedCerts
$token_response = Invoke-RestMethod -Uri $login_url -Headers $headers
$headers["Authorization"] = "Bearer " + $token_response.data.token

# Request
try{
    $response = Invoke-RestMethod -Method $method -Uri $endpoint_url -Headers $headers
}catch{
    $response = $_.Exception.Response
}

# WORK WITH THE RESPONSE AS YOU LIKE
Write-Output $response.data
```

Aşağıdaki değişkenleri değiştirin:

- `<span class="pre"><WAZUH_SERVER_API_IP></span>`Wazuh sunucunuzun IP adresi ile.
- `<span class="pre"><WAZUH_SERVER_API_PORT></span>`Wazuh sunucusu API port numarasıyla (varsayılan olarak port 5500).
- `<span class="pre"><WAZUH_API_USER></span>`ve `<span class="pre"><WAZUH_API_PASSWORD></span>`doğru belgelerle.

Bağlantısı kesilen aracılar hakkında bilgi almak için Windows uç noktasında PowerShell betiğini çalıştırın:

```
powershell .\get_agent_keep_alive.py
```

<div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div><div class="highlight" data-pagefind-weight="0.5">  
</div></div>```
affected_items                                   total_affected_items total_failed_items failed_items
--------------                                   -------------------- ------------------ ------------
{@{lastKeepAlive=2020-05-23T12:39:50Z; id=009},  2                    0                  {}
@{lastKeepAlive=2020-05-23T12:39:50Z; id=010}}
```

</section></section></section>

# Yapılandırma

<p class="callout info">Not: Wazuh sunucu API'sini nasıl koruyacağınız hakkında daha fazla bilgi için lütfen [<span class="doc">Wazuh sunucu API'sini güvence altına alma</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/wazuh-sunucu-apisini-guvence-altina-alma) bölümünü inceleyin.</p>

<section id="bkmrk-wazuh-sunucu-api-yap"><span id="bkmrk-"></span>### Wazuh Sunucu API Yapılandırma Dosyası

`<span class="pre">/var/ossec/api/configuration/api.yaml</span>`Wazuh sunucusu API yapılandırması Wazuh sunucusundaki dosyada bulunur . Varsayılan olarak, tüm ayarlar yorum satırına alınır. Farklı bir yapılandırma uygulamak için, yorum satırını kaldırın ve istediğiniz satırı düzenleyin.

Yapılandırma dosyası için tüm kullanılabilir ayarlar şunlardır `<span class="pre">/var/ossec/api/configuration/api.yaml</span>`. Her bir ayar hakkında daha fazla bilgi için <span class="std std-ref">yapılandırma seçeneklerini</span> kontrol edin:

<section id="bkmrk-host%3A-%5B%270.0.0.0%27%2C-%27%3A">```
host: ['0.0.0.0', '::']
port: 55000

drop_privileges: yes
experimental_features: no
max_upload_size: 10485760

intervals:
   request_timeout: 10

https:
   enabled: yes
   key: "server.key"
   cert: "server.crt"
   use_ca: False
   ca: "ca.crt"
   ssl_protocol: "auto"
   ssl_ciphers: ""

logs:
   level: "info"
   format: "plain"
   max_size:
    enabled: false

cors:
   enabled: no
   source_route: "*"
   expose_headers: "*"
   allow_headers: "*"
   allow_credentials: no

access:
   max_login_attempts: 50
   block_time: 300
   max_request_per_minute: 300

upload_configuration:
   remote_commands:
      localfile:
         allow: yes
         exceptions: []
      wodle_command:
         allow: yes
         exceptions: []
   limits:
      eps:
         allow: yes
    agents:
      allow_higher_versions:
         allow: yes
    indexer:
      allow: yes
    integrations:
      virustotal:
         public_key:
            allow: yes
            minimum_quota: 240
```

<p class="callout warning">Uyarı: Bir Wazuh sunucu kümesi çalıştırıldığında, ana düğüm yerel Wazuh sunucu API yapılandırma dosyasını otomatik olarak çalışan düğümlere göndermez. Her düğüm kendi Wazuh sunucu API yapılandırmasını korur. Bu nedenle, ana düğümdeki yapılandırma dosyasında herhangi bir değişiklik yapılırsa, tutarlılığı sağlamak için her çalışan düğümünde yapılandırmayı manuel olarak güncellemelisiniz. Her çalışanın yerel yapılandırmasında IP adresinin ve bağlantı noktasının üzerine yazılmadığından emin olun.</p>

Yapılandırma dosyasını düzenledikten sonra Wazuh yönetici servisini kullanarak Wazuh sunucu API'sini yeniden başlattığınızdan emin olun:  
  
**Systemd**

```
systemctl restart wazuh-manager
```

  
**SysV Başlatma**

```
service wazuh-manager restart
```

### API Yapılandırma Seçenekleri

</section><section id="bkmrk-home-%C4%B0zin-verilen-de"><section id="bkmrk-home-%C4%B0zin-verilen-de-1">#### home

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 31.7721%;">İzin verilen değerler

</th><th class="head" style="width: 16.1959%;">Varsayılan değer

</th><th class="head" style="width: 52.0478%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 31.7721%;">Geçerli IP adresleri veya ana bilgisayar adlarının listesi

</td><td style="width: 16.1959%;">\['0.0.0.0', '::'\]

</td><td style="width: 52.0478%;">Wazuh sunucu API'sinin çalıştığı Wazuh yöneticisinin IP adresleri veya ana bilgisayar adları.

</td></tr></tbody></table>

</section><section id="bkmrk-port-%C4%B0zin-verilen-de">#### port

<table class="docutils align-default" style="width: 99.6296%;"><thead><tr class="row-odd"><th class="head" style="width: 32.2638%;">İzin verilen değerler

</th><th class="head" style="width: 15.882%;">Varsayılan değer

</th><th class="head" style="width: 51.8684%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 32.2638%;">1 ile 65535 arasındaki herhangi bir değer

</td><td style="width: 15.882%;">55000

</td><td style="width: 51.8684%;">Wazuh sunucu API'sinin dinleyeceği port.

</td></tr></tbody></table>

</section><section id="bkmrk-use_only_authd-4.3.0">#### use\_only\_authd

  
<p class="callout danger"><span class="versionmodified deprecated">4.3.0 sürümünden itibaren kullanımdan kaldırılmıştır.</span></p>

<table class="docutils align-default" style="width: 99.6296%;"><thead><tr class="row-odd"><th class="head" style="width: 32.0145%;">İzin verilen değerler

</th><th class="head" style="width: 16.1361%;">Varsayılan değer

</th><th class="head" style="width: 51.8636%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 32.0145%;">evet, doğru, hayır, yanlış

</td><td style="width: 16.1361%;">YANLIŞ

</td><td style="width: 51.8636%;">Ajanları kaydederken ve kaldırırken wazuh-authd kullanımını zorunlu kılın.

</td></tr></tbody></table>

</section><section id="bkmrk-drop_privileges-%C4%B0zin">#### drop\_privileges

  
<table class="docutils align-default" style="width: 100.494%; height: 70.9376px;"><thead><tr class="row-odd" style="height: 35.4688px;"><th class="head" style="width: 31.772%; height: 35.4688px;">İzin verilen değerler

</th><th class="head" style="width: 16.3161%; height: 35.4688px;">Varsayılan değer

</th><th class="head" style="width: 51.9256%; height: 35.4688px;">Tanım

</th></tr></thead><tbody><tr class="row-even" style="height: 35.4688px;"><td style="width: 31.772%; height: 35.4688px;">evet, doğru, hayır, yanlış

</td><td style="width: 16.3161%; height: 35.4688px;">doğru

</td><td style="width: 51.9256%; height: 35.4688px;">Wazuh-api işlemini kullanıcı olarak çalıştırın `<span class="pre">wazuh</span>`.

</td></tr></tbody></table>

</section><section id="bkmrk-experimental_feature">#### experimental\_features

  
<table class="docutils align-default" style="width: 99.5062%;"><thead><tr class="row-odd"><th class="head" style="width: 31.5586%;">İzin verilen değerler

</th><th class="head" style="width: 16.2747%;">Varsayılan değer

</th><th class="head" style="width: 52.1818%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 31.5586%;">evet, doğru, hayır, yanlış

</td><td style="width: 16.2747%;">YANLIŞ

</td><td style="width: 52.1818%;">Geliştirme aşamasındaki özellikleri etkinleştirin

</td></tr></tbody></table>

</section>#### max\_upload\_size

  
<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 31.6349%;">İzin verilen değerler

</th><th class="head" style="width: 15.8386%;">Varsayılan değer

</th><th class="head" style="width: 52.5423%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 31.6349%;">Herhangi bir pozitif tam sayı

</td><td style="width: 15.8386%;">10485760

</td><td style="width: 52.5423%;">API'nin kabul edebileceği maksimum gövde boyutunu bayt cinsinden ayarlayın (0 -&gt; sınırsız)

</td></tr></tbody></table>

<section id="bkmrk-intervals-%28aral%C4%B1klar">#### intervals (aralıklar)

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 17.3081%;">Alt alanlar

</th><th class="head" style="width: 20.7697%;">İzin verilen değerler

</th><th class="head" style="width: 17.6789%;">Varsayılan değer

</th><th class="head" style="width: 44.2592%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 17.3081%;">request\_timeout

</td><td style="width: 20.7697%;"> </td><td style="width: 17.6789%;">10

</td><td style="width: 44.2592%;">Her API isteği için maksimum yanıt süresini (saniye cinsinden) ayarlayın

</td></tr></tbody></table>

</section><section id="bkmrk-https-alt-alanlar-%C4%B0z">#### https

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 16.8135%;">Alt alanlar

</th><th class="head" style="width: 21.1406%;">İzin verilen değerler

</th><th class="head" style="width: 17.916%;">Varsayılan değer

</th><th class="head" style="width: 44.0221%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 16.8135%;">enabled

</td><td style="width: 21.1406%;">evet, doğru, hayır, yanlış

</td><td style="width: 17.916%;">doğru

</td><td style="width: 44.0221%;">Wazuh sunucu API'sinde SSL'yi (https) etkinleştirin veya devre dışı bırakın.

</td></tr><tr class="row-odd"><td style="width: 16.8135%;">key

</td><td style="width: 21.1406%;">Herhangi bir metin dizesi

</td><td style="width: 17.916%;">sunucu.anahtar

</td><td style="width: 44.0221%;">Özel anahtarın adı. İçinde saklanır `<span class="pre">/var/ossec/api/configuration/ssl</span>`.

</td></tr><tr class="row-even"><td style="width: 16.8135%;">sertifika

</td><td style="width: 21.1406%;">Herhangi bir metin dizesi

</td><td style="width: 17.916%;">sunucu.crt

</td><td style="width: 44.0221%;">Sertifikanın adı. Şurada saklanır `<span class="pre">/var/ossec/api/configuration/ssl</span>`: .

</td></tr><tr class="row-odd"><td style="width: 16.8135%;">use\_ca

</td><td style="width: 21.1406%;">evet, doğru, hayır, yanlış

</td><td style="width: 17.916%;">YANLIŞ

</td><td style="width: 44.0221%;">Bir Sertifika Yetkilisinden alınan sertifikanın kullanılıp kullanılmayacağı.

</td></tr><tr class="row-even"><td style="width: 16.8135%;">ca

</td><td style="width: 21.1406%;">Herhangi bir metin dizesi

</td><td style="width: 17.916%;">yaklaşık.krt

</td><td style="width: 44.0221%;">Sertifika Yetkilisinin (CA) sertifikasının adı. İçinde saklanır `<span class="pre">/var/ossec/api/configuration/ssl</span>`.

</td></tr><tr class="row-odd"><td style="width: 16.8135%;">ssl\_protocol

</td><td style="width: 21.1406%;">TLS, TLSv1, TLSv1.1, TLSv1.2, otomatik

</td><td style="width: 17.916%;"><span class="versionmodified added">4.8.0 sürümündeki yenilikler.</span>

otomatik

</td><td style="width: 44.0221%;">SSL protokolüne izin vermek için. Değeri büyük/küçük harfe duyarlı değildir.

</td></tr><tr class="row-even"><td style="width: 16.8135%;">ssl\_ciphers

</td><td style="width: 21.1406%;">Herhangi bir metin dizesi

</td><td style="width: 17.916%;">Hiçbiri

</td><td style="width: 44.0221%;">SSL şifrelerine izin verilir. Değeri büyük/küçük harfe duyarlı değildir.

</td></tr></tbody></table>

</section><section id="bkmrk-logs-alt-alanlar-%C4%B0zi">#### logs

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 16.6899%;">Alt alanlar

</th><th class="head" style="width: 21.1406%;">İzin verilen değerler

</th><th class="head" style="width: 18.2971%;">Varsayılan değer

</th><th class="head" style="width: 43.8883%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 16.6899%;">level

</td><td style="width: 21.1406%;">devre dışı, bilgi, uyarı, hata, hata ayıklama, debug2 (her seviye bir önceki seviyeyi içerir)

</td><td style="width: 18.2971%;">bilgi

</td><td style="width: 43.8883%;">Wazuh sunucusu API günlüklerinin ayrıntı düzeyini ayarlayın.

</td></tr><tr class="row-odd"><td style="width: 16.6899%;">path

</td><td style="width: 21.1406%;">Herhangi bir metin dizesi.

</td><td style="width: 18.2971%;">günlükler/api.log

</td><td style="width: 43.8883%;"><span class="versionmodified deprecated">4.3.0 sürümünden itibaren kullanımdan kaldırılmıştır.</span>

Wazuh sunucusu API kayıtlarının kaydedileceği yol.

</td></tr><tr class="row-even"><td style="width: 16.6899%;">format

</td><td style="width: 21.1406%;"> </td><td style="width: 18.2971%;">ova

</td><td style="width: 43.8883%;"><span class="versionmodified added">4.4.0 sürümündeki yenilikler.</span>

Wazuh sunucusu API günlüklerinin biçimini ayarlayın.

</td></tr></tbody></table>

</section></section></section><section id="bkmrk-alt-alanlar-%C4%B0zin-ver"><section id="bkmrk-g%C3%BCnl%C3%BCklerbu-ba%C5%9Fl%C4%B1%C4%9Fa-"></section><section id="bkmrk-maksimum_boyutbu-ba%C5%9F">#### max\_size

  
<p class="callout danger"><span class="versionmodified added">4.6.0 sürümündeki yenilikler.</span></p>

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 16.4427%;">Alt alanlar

</th><th class="head" style="width: 21.1354%;">İzin verilen değerler

</th><th class="head" style="width: 18.9204%;">Varsayılan değer

</th><th class="head" style="width: 43.5174%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 16.4427%;">enabled

</td><td style="width: 21.1354%;">evet, doğru, hayır, yanlış

</td><td style="width: 18.9204%;">YANLIŞ

</td><td style="width: 43.5174%;">Zaman tabanlı ve boyut tabanlı Wazuh API günlük döndürme arasında geçiş yapın. Bu seçeneği etkinleştirmek zaman tabanlı döndürmeyi devre dışı bırakır ve bunun yerine dosya boyutuna dayalı döndürmeyi etkinleştirir.

</td></tr><tr class="row-odd"><td style="width: 16.4427%;">size

</td><td style="width: 21.1354%;">Geçerli bir birimden sonra gelen herhangi bir pozitif sayı. Kilobayt için K/k, megabayt için M/m.

</td><td style="width: 18.9204%;">1M

</td><td style="width: 43.5174%;">Boyut tabanlı günlük döndürmeyi tetiklemeyecek şekilde maksimum dosya boyutunu ayarlayın. 1 M'den düşük değerler 1 M olarak kabul edilir.

</td></tr></tbody></table>

</section><section id="bkmrk-korsbu-ba%C5%9Fl%C4%B1%C4%9Fa-kal%C4%B1c">#### cors

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 16.4427%;">Alt alanlar

</th><th class="head" style="width: 21.6351%;">İzin verilen değerler

</th><th class="head" style="width: 18.9003%;">Varsayılan değer

</th><th class="head" style="width: 43.0379%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 16.4427%;">enabled

</td><td style="width: 21.6351%;"> </td><td style="width: 18.9003%;">YANLIŞ

</td><td style="width: 43.0379%;">Wazuh sunucu API'sinde CORS kullanımını etkinleştirin veya devre dışı bırakın.

</td></tr><tr class="row-odd"><td style="width: 16.4427%;">source\_route

</td><td style="width: 21.6351%;">Herhangi bir metin dizesi

</td><td style="width: 18.9003%;">`<span class="pre">*</span>`

</td><td style="width: 43.0379%;">Kaynakların mevcut olacağı kaynaklar. Örneğin `<span class="pre">http://client.example.org</span>`.

</td></tr><tr class="row-even"><td style="width: 16.4427%;">expose\_headers

</td><td style="width: 21.6351%;">Herhangi bir metin dizesi

</td><td style="width: 18.9003%;">`<span class="pre">*</span>`

</td><td style="width: 43.0379%;">Hangi başlıkların yanıtın bir parçası olarak açığa çıkarılabileceği.

</td></tr><tr class="row-odd"><td style="width: 16.4427%;">allow\_headers

</td><td style="width: 21.6351%;"> </td><td style="width: 18.9003%;">`<span class="pre">*</span>`

</td><td style="width: 43.0379%;">Gerçek istek sırasında hangi HTTP başlıklarının kullanılabileceği.

</td></tr><tr class="row-even"><td style="width: 16.4427%;">allow\_credentials

</td><td style="width: 21.6351%;">evet, doğru, hayır, yanlış

</td><td style="width: 18.9003%;">YANLIŞ

</td><td style="width: 43.0379%;">Tarayıcılara yanıtın ön uç JavaScript'e açılıp açılmayacağını söyleyin.

</td></tr></tbody></table>

</section><section id="bkmrk-eri%C5%9Fimbu-ba%C5%9Fl%C4%B1%C4%9Fa-kal"><span id="bkmrk--3"></span>### access (erişim)

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 16.0609%;">Alt alanlar

</th><th class="head" style="width: 22.5113%;">İzin verilen değerler

</th><th class="head" style="width: 18.7916%;">Varsayılan değer

</th><th class="head" style="width: 42.652%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 16.0609%;">max\_login\_attempts

</td><td style="width: 22.5113%;">Herhangi bir pozitif tam sayı

</td><td style="width: 18.7916%;">50

</td><td style="width: 42.652%;">Belirtilen saniye sayısı içerisinde yapılabilecek maksimum oturum açma girişimi sayısını ayarlayın `<span class="pre">block_time</span>`.

</td></tr><tr class="row-odd"><td style="width: 16.0609%;">block\_time

</td><td style="width: 22.5113%;"> </td><td style="width: 18.7916%;">300

</td><td style="width: 42.652%;">Oturum açma isteklerini denemek için belirlenen zaman aralığı (saniye cinsinden). Belirlenen istek sayısı ( `<span class="pre">max_login_attempts</span>`) bu zaman sınırı içinde aşılırsa, IP adresi blok zaman aralığının sonuna kadar engellenir.

</td></tr><tr class="row-even"><td style="width: 16.0609%;">max\_request\_per\_minute

</td><td style="width: 22.5113%;">Herhangi bir pozitif tam sayı

</td><td style="width: 18.7916%;">300

</td><td style="width: 42.652%;">Dakikada izin verilen maksimum istek sayısı. Kimlik doğrulama istekleri hariç tüm Wazuh sunucu API uç noktaları için geçerlidir. Bu sınıra bir dakikadan kısa sürede ulaşılması, kalan süre boyunca herhangi bir kullanıcıdan gelen tüm istekleri engeller. Bir değeri `<span class="pre">0</span>`bu özelliği devre dışı bırakır. İstekler için, etkili değer 30'dan büyük değerler içindir.`<span class="pre">POST</span> <span class="pre">/events</span>``<span class="pre">30</span>`

</td></tr></tbody></table>

</section><section id="bkmrk-y%C3%BCkleme_yap%C4%B1land%C4%B1rma">#### upload\_configuration

  
<p class="callout danger"><span class="versionmodified added">4.4.0 sürümündeki yenilikler.</span></p>

</section>##### remote\_commands (yerel\_dosya ve wodle "komut")  
  


<section></section><section><section id="bkmrk-uzak_komutlar-%28yerel"><table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 16.1811%;">Alt alanlar

</th><th class="head" style="width: 22.762%;">İzin verilen değerler

</th><th class="head" style="width: 19.2861%;">Varsayılan değer

</th><th class="head" style="width: 41.7866%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 16.1811%;">allow

</td><td style="width: 22.762%;">evet, doğru, hayır, yanlış

</td><td style="width: 19.2861%;">doğru

</td><td style="width: 41.7866%;">Wazuh sunucu API'si aracılığıyla uzaktan komutlarla yapılandırmaların yüklenmesine izin verin. Bu seçeneğin ayarlanması, <span class="std std-ref">wodle "command" seçeneğini</span> veya <span class="std std-ref">localfile etiketi</span> içindeki seçeneği içeren dosyaların `<span class="pre">false</span>`yüklenmesini engeller .`<span class="pre">ossec.conf</span>``<span class="pre"><command></span>`

</td></tr><tr class="row-odd"><td style="width: 16.1811%;">exceptions

</td><td style="width: 22.762%;">komut listesi

</td><td style="width: 19.2861%;">\[ \]

</td><td style="width: 41.7866%;">API aracılığıyla yüklenmesine izin verilen komutların bir listesini ayarlayın. Bu istisnalar yapılandırmadan bağımsız olarak her zaman yüklenebilir `<span class="pre">allow</span>`.

</td></tr></tbody></table>

</section><section id="bkmrk-s%C4%B1n%C4%B1rlarbu-ba%C5%9Fl%C4%B1%C4%9Fa-k">##### sınırlar

eps

<p class="callout danger"><span class="versionmodified added">4.4.0 sürümündeki yenilikler.</span></p>

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 15.8114%;">Alt alanlar

</th><th class="head" style="width: 22.8845%;">İzin verilen değerler

</th><th class="head" style="width: 19.2861%;">Varsayılan değer

</th><th class="head" style="width: 42.0339%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 15.8114%;">allow

</td><td style="width: 22.8845%;">evet, doğru, hayır, yanlış

</td><td style="width: 19.2861%;">doğru

</td><td style="width: 42.0339%;">Wazuh sunucu API'si aracılığıyla değiştirilmiş EPS limitleriyle yapılandırmaların yüklenmesine izin verin. Bu seçeneğin ayarlanması, <span class="std std-ref">genel etiketin</span> içindeki bölüm değiştiyse dosyaların `<span class="pre">false</span>` yüklenmesini engeller. `<span class="pre">ossec.conf</span>``<span class="pre"><limits><eps></span>`

</td></tr></tbody></table>

</section><section id="bkmrk-ajanlarbu-ba%C5%9Fl%C4%B1%C4%9Fa-ka">##### agents

**allow\_higher\_versions**

<p class="callout danger"><span class="versionmodified added">4.6.0 sürümündeki yenilikler.</span></p>

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 14.8233%;">Alt alanlar

</th><th class="head" style="width: 23.0072%;">İzin verilen değerler

</th><th class="head" style="width: 20.646%;">Varsayılan değer

</th><th class="head" style="width: 41.5394%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 14.8233%;">allow

</td><td style="width: 23.0072%;">evet, doğru, hayır, yanlış

</td><td style="width: 20.646%;">doğru

</td><td style="width: 41.5394%;">Wazuh sunucu API'si aracılığıyla daha yüksek aracı sürümlerini kabul eden yapılandırmaların yüklenmesine izin verin. Bu seçeneğin ayarlanması, <span class="std std-ref">auth</span> veya <span class="std std-ref">remote</span> etiketleri içindeki değere sahip bölümü içeren dosyaların `<span class="pre">false</span>`yüklenmesini engeller .`<span class="pre">ossec.conf</span>``<span class="pre"><allow_higher_versions></span>``<span class="pre">yes</span>`

</td></tr></tbody></table>

</section><section id="bkmrk-dizinleyicibu-ba%C5%9Fl%C4%B1%C4%9F">##### indexer

<p class="callout danger"><span class="versionmodified added">4.8.0 sürümündeki yenilikler.</span></p>

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 13.9709%;">Alt alanlar

</th><th class="head" style="width: 23.2414%;">İzin verilen değerler

</th><th class="head" style="width: 21.0169%;">Varsayılan değer

</th><th class="head" style="width: 41.7866%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 13.9709%;">allow

</td><td style="width: 23.2414%;">evet, doğru, hayır, yanlış

</td><td style="width: 21.0169%;">doğru

</td><td style="width: 41.7866%;">Wazuh sunucu API'si aracılığıyla güncellenmiş bir <span class="doc">dizinleyici yapılandırma bölümünün</span> yüklenmesine izin verir . Bu seçeneğin ayarlanması `<span class="pre">false</span>`, yükleme sırasında dizinleyici yapılandırmasının güncellenmesini önler `<span class="pre">ossec.conf</span>`.

</td></tr></tbody></table>

</section><section id="bkmrk-entegrasyonlarbu-ba%C5%9F">##### entegrasyonlar

<p class="callout danger"><span class="versionmodified added">4.8.0 sürümündeki yenilikler.</span></p>

virüstotal (public\_key)

<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 14.5875%;">Alt alanlar

</th><th class="head" style="width: 21.5121%;">İzin verilen değerler

</th><th class="head" style="width: 22.5005%;">Varsayılan değer

</th><th class="head" style="width: 41.4157%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 14.5875%;">allow

</td><td style="width: 21.5121%;">evet, doğru, hayır, yanlış

</td><td style="width: 22.5005%;">doğru

</td><td style="width: 41.4157%;">Wazuh sunucu API'si aracılığıyla genel bir API anahtarı kullanılarak güncellenmiş bir <span class="doc">Virus Total entegrasyon yapılandırma bölümünün</span> yüklenmesine izin verir . Bu seçeneğin ayarlanması `<span class="pre">false</span>`, yükleme sırasında entegrasyonların Virus Total yapılandırmasının güncellenmesini önler `<span class="pre">ossec.conf</span>`.

</td></tr><tr class="row-odd"><td style="width: 14.5875%;">minimum\_quota

</td><td style="width: 21.5121%;">Herhangi bir pozitif tam sayı

</td><td style="width: 22.5005%;">240

</td><td style="width: 41.4157%;">Virus Total genel API anahtarı için minimum kota değeri.

</td></tr></tbody></table>

</section></section></section><section id="bkmrk-wazuh-sunucu-api-g%C3%BCv">### Wazuh Sunucu API Güvenlik Yapılandırması

`<span class="pre">auth_token_exp_timeout</span>`Güvenlik yapılandırmasını ve `<span class="pre">rbac_mode</span>`ayarlarını yalnızca Wazuh sunucu API uç noktaları aracılığıyla sorgulayabilir ve değiştirebilirsiniz : [GET /security/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.get_security_config) , [PUT /security/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.put_security_config) ve [DELETE /security/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.delete_security_config) . `<span class="pre">auth_token_exp_timeout</span>`Bir kimlik doğrulama belirtecinin süresi dolmadan ve yenilenmesi gerekmeden önceki saniye cinsinden süreyi tanımlar. `<span class="pre">rbac_mode</span>`Kullanıcı rollerine ve izinlerine göre kaynaklara ve uç noktalara erişimi genel olarak izin vermek veya kısıtlamak üzere yapılandırılabilen Rol Tabanlı Erişim Kontrol sisteminin genel davranışını belirler. Daha fazla ayrıntı için [<span class="doc">Rol Tabanlı Erişim Kontrol</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/rol-tabanli-erisim-kontrolu) belgelerine bakın. Yapılandırma, geçerliyse bir kümedeki her Wazuh sunucu API'sine uygulanır.

Her bir ayar hakkında daha fazla bilgi için lütfen [<span class="std std-ref">güvenlik yapılandırma seçeneklerini</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/yapilandirma) kontrol edin .

```
auth_token_exp_timeout: 900
rbac_mode: white
```

<p class="callout warning">Uyarı: Güvenlik nedenleriyle, güvenlik yapılandırmasını değiştirmek tüm JWT'leri iptal eder. Değişiklikten sonra oturum açmanız ve yeni bir token edinmeniz gerekecektir.</p>

<section id="bkmrk-g%C3%BCvenlik-yap%C4%B1land%C4%B1rm"><span id="bkmrk--4"></span>#### Güvenlik Yapılandırma Seçenekleri

<section id="bkmrk-auth_token_exp_timeo">##### auth\_token\_exp\_timeout

  
<table class="docutils align-default" style="width: 93.8272%;"><thead><tr class="row-odd"><th class="head" style="width: 25.1684%;">İzin verilen değerler

</th><th class="head" style="width: 18.1814%;">Varsayılan değer

</th><th class="head" style="width: 56.6649%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 25.1684%;">Herhangi bir pozitif tam sayı

</td><td style="width: 18.1814%;">900

</td><td style="width: 56.6649%;">JWT token'larının süresinin dolmasının kaç saniye süreceğini ayarlayın.

</td></tr></tbody></table>

</section><section id="bkmrk-rbac_modubu-ba%C5%9Fl%C4%B1%C4%9Fa-">##### rbac\_mode

  
<table class="docutils align-default" style="width: 100%;"><thead><tr class="row-odd"><th class="head" style="width: 23.5911%;">İzin verilen değerler

</th><th class="head" style="width: 17.5774%;">Varsayılan değer

</th><th class="head" style="width: 58.8474%;">Tanım

</th></tr></thead><tbody><tr class="row-even"><td style="width: 23.5911%;">siyah, beyaz

</td><td style="width: 17.5774%;">beyaz

</td><td style="width: 58.8474%;">RBAC davranışını ayarlayın. Varsayılan olarak, siyah modda her şeye izin verilirken beyaz modda her şey reddedilir. İstenen RBAC altyapısına daha uygun olan rbac\_mode'u seçin. Siyah modda, sadece bazı politikalarla birkaç belirli eylem-kaynak çiftini reddetmek çok kolaydır, beyaz mod ise daha güvenlidir ve sıfırdan oluşturulmasını gerektirir.

</td></tr></tbody></table>

</section></section></section><section id="bkmrk-yap%C4%B1land%C4%B1rma-u%C3%A7-nokt">### Yapılandırma Endpoints

Wazuh sunucu API'sinin geçerli yapılandırmasını sorgulamaya izin veren birkaç uç noktası vardır. Genel API yapılandırmasını değiştirmek için dosyayı [<span class="std std-ref">Wazuh sunucu API yapılandırma dosyası </span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/yapilandirma)`<span class="pre">/var/ossec/api/configuration/api.yaml</span>` bölümünde ayrıntılı olarak açıklandığı şekilde düzenleyin .

<section id="bkmrk-yap%C4%B1land%C4%B1rmay%C4%B1-albu-">#### Yapılandırmayı Al

- [GET /manager/api/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_api_config) : Yerel Wazuh sunucusunun API yapılandırmasının tamamını alın.
- [GET /cluster/api/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_api_config) : Tüm küme düğümlerinin (veya bir listesinin) Wazuh sunucusu API yapılandırmasının tamamını alın.
- [GET /security/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.get_security_config) : Mevcut güvenlik yapılandırmasını alın.

</section><section id="bkmrk-yap%C4%B1land%C4%B1rmay%C4%B1-de%C4%9Fi%C5%9F">#### Yapılandırmayı Değiştir

- [PUT /security/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.put_security_config) : Güvenlik yapılandırmasını değiştirin.

</section><section id="bkmrk-yap%C4%B1land%C4%B1rmay%C4%B1-geri-">#### Yapılandırmayı Geri Yükle

- [DELETE /security/config](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.delete_security_config) : Varsayılan güvenlik yapılandırmasını geri yükler.

</section></section><section id="bkmrk-ssl-sertifikas%C4%B1bu-ba">### SSL sertifikası

<p class="callout info">Not: Bu işlem Wazuh sunucu API'si ilk kez çalıştırıldığında otomatik olarak gerçekleştirilir.</p>

SSL sertifikası, Wazuh sunucu API'si ile istemcileri arasında güvenli iletişimi sağlar. Sertifika dosyaları dizinde saklanır `<span class="pre">/var/ossec/api/configuration/ssl/</span>`.

Wazuh sunucu API'si için yeni sertifikalar oluşturmak üzere aşağıdaki adımları izleyin:

1. Anahtar ve sertifika isteğini oluşturun ( `<span class="pre">openssl</span>`paket gereklidir):
    
    ```
    cd /var/ossec/api/configuration/ssl
    openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout server.key -out server.crt
    ```
    
    Varsayılan olarak, anahtarın parolası sunucu her çalıştırıldığında girilmelidir. Anahtar Wazuh sunucu API'si veya yukarıdaki komut tarafından üretilmişse, parolası olmazdı.
2. (İsteğe bağlı) Anahtarı bir parola ile güvenceye alın:
    
    ```
    ssh-keygen -p -f server.key
    ```
    
    Yeni şifreyi girmeniz ve onaylamanız istenecektir.

</section>

# Wazuh Sunucu API'sini Güvence Altına Alma

Wazuh panosu ile Wazuh sunucu API'si arasındaki iletişim varsayılan olarak HTTPS ile şifrelenir. Wazuh sunucu API'si, kullanıcılar bunları sağlamazsa ilk çalıştırma sırasında kendi özel anahtarını ve sertifikasını oluşturur. Ek olarak, Wazuh sunucu API'si OVA kurulumuyla birlikte kurulduğunda aşağıdaki kullanıcı adı-şifre çiftini otomatik olarak oluşturur:

- `<span class="pre">wazuh:wazuh</span>`
- `<span class="pre">wazuh-wui:wazuh-wui</span>`

Wazuh dağıtımı kurulum yardımcısı betiği kullanılarak gerçekleştirildiyse, Wazuh API kullanıcı adı şudur `<span class="pre">wazuh</span>`ve aşağıdaki komutu çalıştırarak parolayı çıkarabilirsiniz:

```
tar -axf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O | grep -P "\'wazuh\'" -A 1
```

Bu nedenle Wazuh yöneticisini kurduktan sonra Wazuh sunucu API'sinin güvenliğini sağlamak büyük önem taşımaktadır.

<p class="callout warning">Uyarı: Wazuh sunucu API'si tarafından oluşturulan sertifikanın kendi imzalı olması nedeniyle varsayılan şifreleri değiştirmenizi ve kendi sertifikanızı kullanmanızı şiddetle öneririz.</p>

<section id="bkmrk-wazuh-sunucu-api%27sin">### Wazuh Sunucu API'sini Güvence Altına Almak İçin Önerilen Değişiklikler

<section id="bkmrk-1.-https-parametrele">#### 1. HTTPS Parametrelerini Değiştirin

Wazuh sunucu API'si varsayılan olarak HTTPS'yi etkinleştirmiştir. Eğer içinde kullanılabilir bir sertifika yoksa `<span class="pre">/var/ossec/api/configuration/ssl/</span>`, Wazuh sunucusu başlatıldığında özel anahtarı ve kendi kendine imzalanmış bir sertifikayı üretecektir. Eğer durum buysa ve API günlük biçimi olarak ayarlanmışsa `<span class="pre">plain</span>`, aşağıdaki satırlar görünecektir `<span class="pre">/var/ossec/logs/api.log</span>`:

```
INFO: HTTPS is enabled but cannot find the private key and/or certificate. Attempting to generate them.
INFO: Generated private key file in WAZUH_PATH/api/configuration/ssl/server.key.
INFO: Generated certificate file in WAZUH_PATH/api/configuration/ssl/server.crt.
```

Bu HTTPS seçeneklerini, durumlarını veya sertifika yolunu da içerecek şekilde, şu adreste bulunan Wazuh sunucu API yapılandırma dosyasını düzenleyerek değiştirebilirsiniz `<span class="pre">/var/ossec/api/configuration/api.yaml</span>`:

```
https:
  enabled: yes
  key: "server.key"
  cert: "server.crt"
  use_ca: False
  ca: "ca.crt"
  ssl_protocol: "auto"
  ssl_ciphers: ""
```

Değişiklikleri uygulamak için Wazuh yönetici hizmetini kullanarak Wazuh sunucu API'sini yeniden başlatın:  
  
**Systemd**

```
systemctl restart wazuh-manager
```

</section></section>**SysV Başlatma**

<section id="bkmrk-service-wazuh-manage"><section id="bkmrk-service-wazuh-manage-1">```
service wazuh-manager restart
```

<div class="sphinx-tabs docutils container"><div aria-labelledby="tab-0-U3lzdGVtZA==" class="sphinx-tabs-panel group-tab" id="bkmrk-" name="U3lzdGVtZA==" role="tabpanel" tabindex="0"><div class="highlight-console notranslate"><div class="highlight" data-pagefind-weight="0.5">  
</div></div></div></div></section><section id="bkmrk-2.-y%C3%B6netici-kullan%C4%B1c">#### 2. Yönetici Kullanıcıları İçin Varsayılan Parolayı Değiştirin

Yönetici kullanıcıları için varsayılan şifreyi değiştirmek için `<span class="pre">wazuh</span>`aşağıdaki `<span class="pre">wazuh-wui</span>`Wazuh sunucu API isteğini kullanabilirsiniz: [PUT /security/users/{user\_id}](https://documentation.wazuh.com/current/user-manual/api/reference.html#operation/api.controllers.security_controller.update_user) .

<p class="callout info">Not: Kullanıcıların şifresi 8 ile 64 karakter arasında olmalıdır. En az bir büyük harf, küçük harf, rakam ve sembol içermelidir.</p>

**Aşağıda curl kullanarak şifre değiştirmenin bir örneğini gösteriyoruz** :

1. Kullanıcıların kullanıcı kimlikleriyle birlikte bir listesini alın:
    
    ```
    curl -k -X GET "https://localhost:55000/security/users?pretty=true" -H  "Authorization: Bearer $TOKEN"
    ```
2. İstenilen kullanıcının şifresini değiştirin:
    
    ```
    curl -k -X PUT "https://localhost:55000/security/users/<USER_ID>" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"password": "<NEW_PASSWORD>"}'
    ```
    
    `<span class="pre"><USER_ID></span>`Kullanıcının ID'si ve `<span class="pre"><NEW_PASSWORD></span>`yeni şifre ile değiştirin.
    
    <p class="callout warning">Uyarı: `<span class="pre">wazuh-wui</span>` kullanıcı parolasını değiştirmek Wazuh panosunu etkileyecektir. Yeni kimlik bilgileriyle `/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml ` yapılandırma dosyasını uygun şekilde güncellemeniz gerekecektir. Daha fazla bilgi edinmek için [Wazuh gösterge tablosu yapılandırma dosyası belgesine](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/wazuh-dashboard-ayarlari) bakın.</p>
    
    <div class="admonition warning"> </div>

</section><section id="bkmrk-3.-varsay%C4%B1lan-ana-bi">#### 3. Varsayılan Host ve Portu Değiştirin

Varsayılan olarak, `<span class="pre">host</span>`olarak ayarlanır ve Wazuh sunucu API'sinin tüm kullanılabilir ağ arayüzlerinde gelen bağlantıları kabul etmesine olanak tanır. Erişimi kısıtlamak için, Wazuh sunucu API yapılandırmasını şurada düzenleyin :`<span class="pre">['0.0.0.0',</span> <span class="pre">'::']</span>``<span class="pre">/var/ossec/api/configuration/api.yaml</span>`

```
host: ['0.0.0.0', '::']
```

Varsayılan portu da değiştirebilirsiniz:

```
port: 55000
```

Bu parametreleri yapılandırdıktan sonra, Systemd veya SysV init ile Wazuh yönetici servisini kullanarak Wazuh sunucu API'sini yeniden başlatın:  
  
**Systemd**

```
systemctl restart wazuh-manager
```

  
**SysV Başlatma**```
service wazuh-manager restart
```

</section><section id="bkmrk-4.-dakika-ba%C5%9F%C4%B1na-mak">#### 4. Dakika Başına Maksimum İstek Sayısını Ayarlayın

Wazuh sunucu API'sinin aşırı yüklenmesini önlemek için, API'nin dakikada işleyebileceği maksimum istek sayısını belirlemek için hız sınırlaması uygulayabilirsiniz. Bu sınır aşılırsa, API geri kalan süre boyunca herhangi bir kullanıcıdan gelen diğer istekleri reddeder.

`<span class="pre">max_request_per_minute</span>`Varsayılan sınır dakikada 300 istektir. Bunu, içindeki ayarı değiştirerek ayarlayın `<span class="pre">/var/ossec/api/configuration/api.yaml</span>`.

<p class="callout info">Not: Hız sınırlamasını devre dışı bırakmak için değerini 0 olarak ayarlayın.</p>

</section><section id="bkmrk-5.-maksimum-oturum-a">#### 5. Maksimum Oturum Açma Girişimi Sayısını Ayarlayın

Kaba kuvvet saldırılarına karşı korunmak için, belirli bir zaman dilimi içinde aynı IP adresinden gelen oturum açma girişimlerini sınırlayabilirsiniz. Bu sınırın aşılması, IP adresini o süre boyunca engeller.

Varsayılan olarak, 300 saniyelik periyotta 50 oturum açma girişimine izin verilir. Bu sınırları ayarlamak için `<span class="pre">max_login_attempts</span>` ve/veya `<span class="pre">block_time</span>` ayarlarını `<span class="pre">/var/ossec/api/configuration/api.yaml</span>`'da düzenleyin.

</section></section>

# Rol Tabanlı Erişim Kontrolü



# Wazuh Sorgu Dili (WQL) Kullanılarak Verilerin Filtrelenmesi

Wazuh API'sinin sorgularını kullanarak gelişmiş filtreleme mümkündür. Sorgular `<span class="pre">q</span>`parametre kullanılarak belirtilir. Bir sorgunun yapısı şu şekildedir:

- **Alan adı** : Filtrelenecek alan adı. Yanlış bir alan adı kullanılırsa, bir hata oluşacaktır.
- <dl class="simple"><dt>**Operatör** : Filtreleme yapılacak operatör:</dt><dd>
    - `<span class="pre">=</span>`: eşitlik.
    - `<span class="pre">!=</span>`: eşitlik değil.
    - `<span class="pre"><</span>`: daha küçük.
    - `<span class="pre">></span>`: daha büyük.
    - `<span class="pre">~</span>`: gibi.
    - `<span class="pre">()</span>`: gruplama operatörleri.
    
    </dd></dl>
- **Değer** : Filtrelenecek değer.
- <dl class="simple"><dt>**Ayırıcı** : Birden fazla "sorguyu" birleştirmek için kullanılan operatör:</dt><dd>
    - `<span class="pre">,</span>`: bir . temsil eder `<span class="pre">OR</span>`.
    - `<span class="pre">;</span>`: bir . temsil eder `<span class="pre">AND</span>`.
    
    </dd></dl>

<p class="callout info">Not: Ayrılmış karakterlerin, özellikle noktalı virgüllerin ( `<span class="pre">;</span>` → `<span class="pre">%3B</span>`) yüzde kodlu olması gerekir . İşlemi kolaylaştırmak için cURL içinde `<span class="pre">--data-urlencode</span>` kullanabilirsiniz.</p>

### Örnekler

<section id="bkmrk-%C3%96rne%C4%9Fin%2C-18%27den-y%C3%BCks">Örneğin, 18'den yüksek sürüme sahip Ubuntu aracılarını filtrelemek için aşağıdaki sorgu kullanılır. q parametresinin değerinin şu şekilde kodlandığını unutmayın `<span class="pre">--data-urlencode</span>`:

```
curl -G --data-urlencode "q=os.name=ubuntu;os.version>18" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div><div class="highlight" data-pagefind-weight="0.5">  
</div></div>```
{
   "data": {
      "affected_items": [
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.4 LTS"
            },
            "name": "wazuh-master",
            "id": "000"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.4 LTS"
            },
            "name": "wazuh-agent4",
            "id": "004"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.4 LTS"
            },
            "name": "wazuh-agent5",
            "id": "005"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.4 LTS"
            },
            "name": "wazuh-agent6",
            "id": "006"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.4 LTS"
            },
            "name": "wazuh-agent7",
            "id": "007"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.4 LTS"
            },
            "name": "wazuh-agent8",
            "id": "008"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.2 LTS"
            },
            "name": "wazuh-agent9",
            "id": "009"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.2 LTS"
            },
            "name": "wazuh-agent10",
            "id": "010"
         }
      ],
      "total_affected_items": 8,
      "total_failed_items": 0,
      "failed_items": []
   },
   "message": "All selected agents information was returned",
   "error": 0
}
```

Daha doğru bir sonuç elde etmek için aynı alan birden fazla kez kullanılabilir. Örneğin, Ubuntu 18'den daha yüksek ancak Ubuntu 18.04.4'ten daha düşük bir sürüme sahip filtreleme ajanları:

```
curl -G --data-urlencode "q=os.name=ubuntu;os.version>18;os.version<18.04.4" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
   "data": {
      "affected_items": [
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.2 LTS"
            },
            "name": "wazuh-agent9",
            "id": "009"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.2 LTS"
            },
            "name": "wazuh-agent10",
            "id": "010"
         }
      ],
      "total_affected_items": 2,
      "total_failed_items": 0,
      "failed_items": []
   },
   "message": "All selected agents information was returned",
   "error": 0
}
```

OR ( `<span class="pre">,</span>` ) operatörü ve LIKE AS ( `<span class="pre">~</span>` ) operatörünün kullanımına bir örnek, işletim sistemi adı *windows* veya *centos*içeren ajanları filtrelemek olabilir .

```
curl -G --data-urlencode "q=os.name~centos,os.name~windows" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
   "data": {
      "affected_items": [
         {
            "os": {
               "major": "6",
               "name": "Microsoft Windows 7 Ultimate Edition Professional Service Pack 1",
               "version": "6.1.7601"
            },
            "name": "jmv74211-PC",
            "id": "013"
         }
      ],
      "total_affected_items": 1,
      "total_failed_items": 0,
      "failed_items": []
   },
   "message": "All selected agents information was returned",
   "error": 0
}
```

Kimliği 0'dan farklı ve 4'ten küçük olan, adı alt dizeyi içeren `<span class="pre">waz</span>`ve ana sürümü 16 veya 18 olan Ubuntu ajanlarını elde etmek, aynı anda birden fazla operatörü içeren bir örnektir:

```
curl -G --data-urlencode "q=id!=0;id<4;name~waz;(os.major=16,os.major=18)" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
   "data": {
      "affected_items": [
         {
            "os": {
               "codename": "Xenial Xerus",
               "major": "16",
               "name": "Ubuntu",
               "version": "16.04.6 LTS"
            },
            "name": "wazuh-agent1",
            "id": "001"
         },
         {
            "os": {
               "codename": "Xenial Xerus",
               "major": "16",
               "name": "Ubuntu",
               "version": "16.04.6 LTS"
            },
            "name": "wazuh-agent2",
            "id": "002"
         },
         {
            "os": {
               "codename": "Xenial Xerus",
               "major": "16",
               "name": "Ubuntu",
               "version": "16.04.6 LTS"
            },
            "name": "wazuh-agent3",
            "id": "003"
         }
      ],
      "total_affected_items": 3,
      "total_failed_items": 0,
      "failed_items": []
   },
   "message": "All selected agents information was returned",
   "error": 0
}
```

*Windows'ta*`<span class="pre">007</span>` çalışan veya işletim sistemi ana sürümü 14 veya 18 olanlardan daha yüksek bir ID'ye sahip aracıları elde etmek :

```
curl -G --data-urlencode "q=id>007;(os.name~windows,(os.major=14,os.major=18))" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
   "data": {
      "affected_items": [
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.4 LTS"
            },
            "name": "wazuh-agent8",
            "id": "008"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.2 LTS"
            },
            "name": "wazuh-agent9",
            "id": "009"
         },
         {
            "os": {
               "codename": "Bionic Beaver",
               "major": "18",
               "name": "Ubuntu",
               "version": "18.04.2 LTS"
            },
            "name": "wazuh-agent10",
            "id": "010"
         },
         {
            "os": {
               "major": "6",
               "name": "Microsoft Windows 7 Ultimate Edition Professional Service Pack 1",
               "version": "6.1.7601"
            },
            "name": "jmv74211-PC",
            "id": "013"
         }
      ],
      "total_affected_items": 4,
      "total_failed_items": 0,
      "failed_items": []
   },
   "message": "All selected agents information was returned",
   "error": 0
}
```

</section>

# Kullanım Örnekleri

<span class="std std-ref">Bu bölüm, Wazuh sunucu API'sinin bazı potansiyellerini göstermek için çeşitli kullanım örnekleri sunar. Tüm olası API istekleri hakkında ayrıntıları [referans](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/chapter/referans)</span>[ ](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/chapter/referans)bölümünde bulabilirsiniz .

<section id="bkmrk-kural-setini-ke%C5%9Ffetm">### Kural Setini Keşfetmek

Genellikle bir uyarı ateşlendiğinde, kuralın kendisi hakkında ayrıntıları bilmek faydalıdır. Aşağıdaki istek kuralın niteliklerini sıralar `<span class="pre">1002</span>`:

```
curl -k -X GET "https://localhost:55000/rules?rule_ids=1002&pretty=true" -H  "Authorization: Bearer $TOKEN"# curl -k -X GET "https://localhost:55000/rules?rule_ids=1002&pretty=true" -H  "Authorization: Bearer $TOKEN"

```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">  
</div><div class="highlight" data-pagefind-weight="0.5">**Output**</div></div>```
{
   "data": {
      "affected_items": [
         {
            "filename": "0020-syslog_rules.xml",
            "relative_dirname": "ruleset/rules",
            "id": 1002,
            "level": 2,
            "status": "enabled",
            "details": {
               "match": {
                  "pattern": "core_dumped|failure|error|attack| bad |illegal |denied|refused|unauthorized|fatal|failed|Segmentation Fault|Corrupted"
                }
            },
            "pci_dss": [],
            "gpg13": [
               "4.4"
            ],
            "gdpr": [],
            "hipaa": [],
            "nist_800_53": [],
            "groups": [
               "syslog",
               "errors"
            ],
            "description": "Unknown problem somewhere in the system."
         }
      ],
      "total_affected_items": 1,
      "total_failed_items": 0,
      "failed_items": []
   },
   "message": "All selected rules were returned",
   "error": 0
}
```

`<span class="pre">web</span>`Belirli bir ölçüte uyan hangi kuralların mevcut olduğunu bilmek de faydalı olabilir. Örneğin, PCI etiketiyle `<span class="pre">10.6.1</span>`ve kelimeyi içeren gruptaki tüm kuralları `<span class="pre">failures</span>`aşağıdaki komutla görüntüleyebilirsiniz :

```
curl -k -X GET "https://localhost:55000/rules?pretty=true&limit=500&search=failures&group=web&pci_dss=10.6.1" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "filename": "0260-nginx_rules.xml",
        "relative_dirname": "ruleset/rules",
        "id": 31316,
        "level": 10,
        "status": "enabled",
        "details": {
          "frequency": "8",
          "timeframe": "240",
          "if_matched_sid": "31315",
          "same_source_ip": "",
          "mitre": "\n      "
        },
        "pci_dss": [
          "10.6.1",
          "10.2.4",
          "10.2.5",
          "11.4"
        ],
        "gpg13": [
          "7.1"
        ],
        "gdpr": [
          "IV_35.7.d",
          "IV_32.2"
        ],
        "hipaa": [
          "164.312.b"
        ],
        "nist_800_53": [
          "AU.6",
          "AU.14",
          "AC.7",
          "SI.4"
        ],
        "groups": [
          "authentication_failures",
          "tsc_CC7.2",
          "tsc_CC7.3",
          "tsc_CC6.1",
          "tsc_CC6.8",
          "nginx",
          "web"
        ],
        "description": "Nginx: Multiple web authentication failures."
      }
    ],
    "total_affected_items": 1,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "All selected rules were returned",
  "error": 0
}
```

</section><section id="bkmrk-test-kurallar%C4%B1-ve-ko">### Test Kuralları ve Kod Çözücüler

[<span class="doc">Wazuh sunucu API'sini kullanarak bir wazuh-logtest</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/kod-cozuculeri-ve-kurallari-test-etme) oturumu başlatabilir veya özel veya varsayılan kuralları ve kod çözücüleri test etmek ve doğrulamak için mevcut bir oturumu kullanabilirsiniz. Aşağıdaki istek bir logtest oturumu oluşturur ve sağlanan günlük için eşleşen kuralları ve kod çözücüleri görüntüler. Ayrıca diğer bilgilerin yanı sıra ön kodlama aşamasını da ortaya çıkarır.

```
curl -k -X PUT "https://localhost:55000/logtest" -H  "Authorization: Bearer $TOKEN" -H  "Content-Type: application/json" -d "{\"event\":\"Jun 29 15:54:13 focal multipathd[557]: sdb: failed to get sysfs uid: No data available\",\"log_format\":\"syslog\",\"location\":\"user->/var/log/syslog\"}"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "error": 0,
  "data": {
    "token": "bc3ca27a",
    "messages": [
      "WARNING: (7309): 'null' is not a valid token",
      "INFO: (7202): Session initialized with token 'bc3ca27a'"
    ],
    "output": {
      "timestamp": "2020-10-15T09:40:53.630+0000",
      "rule": {
        "level": 0,
        "description": "FreeIPA messages grouped",
        "id": "82202",
        "firedtimes": 1,
        "mail": false,
        "groups": [
          "freeipa"
        ]
      },
      "agent": {
        "id": "000",
        "name": "wazuh-master"
      },
      "manager": {
        "name": "wazuh-master"
      },
      "id": "1602754853.1000774",
      "cluster": {
        "name": "wazuh",
        "node": "master-node"
      },
      "full_log": "Jun 29 15:54:13 focal multipathd[557]: sdb: failed to get sysfs uid: No data available",
      "predecoder": {
        "program_name": "multipathd",
        "timestamp": "Jun 29 15:54:13",
        "hostname": "focal"
      },
      "decoder": {
        "name": "freeipa"
      },
      "location": "user->/var/log/syslog"
    },
    "alert": false,
    "codemsg": 1
  }
}
```

</section><section id="bkmrk-bir-wazuh-arac%C4%B1s%C4%B1n%C4%B1n">### Bir Wazuh Aracısının Dosya Bütünlüğü İzleme (FIM) Veritabanının Analiz Edilmesi

Wazuh FIM modülü tarafından izlenen tüm dosyalar hakkında bilgi görüntülemek için Wazuh sunucu API'sini kullanabilirsiniz. Aşağıdaki örnek, `<span class="pre">.py</span>`aracı kimliğine sahip izlenen bir uç noktaya yüklenen Python dosyalarıyla ilişkili tüm olayları gösterir `<span class="pre">001</span>`:

```
curl -k -X GET "https://localhost:55000/syscheck/001?pretty=true&search=.py" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">  
</div><div class="highlight" data-pagefind-weight="0.5">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "file": "/etc/python2.7/sitecustomize.py",
        "perm": "rw-r--r--",
        "sha1": "67b0a8ccf18bf5d2eb8c7f214b5a5d0d4a5e409d",
        "changes": 1,
        "md5": "d6b276695157bde06a56ba1b2bc53670",
        "inode": 29654607,
        "size": 155,
        "uid": "0",
        "gname": "root",
        "mtime": "2020-04-15T17:20:14Z",
        "sha256": "43d81125d92376b1a69d53a71126a041cc9a18d8080e92dea0a2ae23be138b1e",
        "date": "2020-05-25T14:28:41Z",
        "uname": "root",
        "type": "file",
        "gid": "0"
      },
      {
        "file": "/etc/python3.6/sitecustomize.py",
        "perm": "rw-r--r--",
        "sha1": "67b0a8ccf18bf5d2eb8c7f214b5a5d0d4a5e409d",
        "changes": 1,
        "md5": "d6b276695157bde06a56ba1b2bc53670",
        "inode": 29762235,
        "size": 155,
        "uid": "0",
        "gname": "root",
        "mtime": "2020-04-18T01:56:04Z",
        "sha256": "43d81125d92376b1a69d53a71126a041cc9a18d8080e92dea0a2ae23be138b1e",
        "date": "2020-05-25T14:28:41Z",
        "uname": "root",
        "type": "file",
        "gid": "0"
      }
    ],
    "total_affected_items": 2,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "FIM findings of the agent were returned",
  "error": 0
}
```

Bir dosyayı SHA1 veya MD5 karma değerini kullanarak bulabilirsiniz. Aşağıdaki örneklerde, dosyayı hem SHA1 hem de MD5 karma değerini kullanarak alıyoruz:

```
curl -k -X GET "https://localhost:55000/syscheck/001?pretty=true&hash=bc929cb047b79d5c16514f2c553e6b759abfb1b8" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "file": "/sbin/swapon",
        "perm": "rwxr-xr-x",
        "sha1": "bc929cb047b79d5c16514f2c553e6b759abfb1b8",
        "changes": 1,
        "md5": "085c1161d814a8863562694b3819f6a5",
        "inode": 14025822,
        "size": 47184,
        "uid": "0",
        "gname": "root",
        "mtime": "2020-01-08T18:31:23Z",
        "sha256": "f274025a1e4870301c5678568ab9519152f49d3cb907c01f7c71ff17b1a6e870",
        "date": "2020-05-25T14:29:44Z",
        "uname": "root",
        "type": "file",
        "gid": "0"
      }
    ],
    "total_affected_items": 1,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "FIM findings of the agent were returned",
  "error": 0
}
```

```
curl -k -X GET "https://localhost:55000/syscheck/001?pretty=true&hash=085c1161d814a8863562694b3819f6a5" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "file": "/sbin/swapon",
        "perm": "rwxr-xr-x",
        "sha1": "bc929cb047b79d5c16514f2c553e6b759abfb1b8",
        "changes": 1,
        "md5": "085c1161d814a8863562694b3819f6a5",
        "inode": 14025822,
        "size": 47184,
        "uid": "0",
        "gname": "root",
        "mtime": "2020-01-08T18:31:23Z",
        "sha256": "f274025a1e4870301c5678568ab9519152f49d3cb907c01f7c71ff17b1a6e870",
        "date": "2020-05-25T14:29:44Z",
        "uname": "root",
        "type": "file",
        "gid": "0"
      }
    ],
    "total_affected_items": 1,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "FIM findings of the agent were returned",
  "error": 0
}
```

</section><section id="bkmrk-y%C3%B6netici-hakk%C4%B1nda-bi">### Yönetici Hakkında Bilgi Edinme

Wazuh sunucusu API'si aracılığıyla Wazuh yöneticisi hakkında çeşitli ayrıntıları alabilirsiniz. Bu ayrıntılar yapılandırma, durum, günlükler ve daha fazlasını içerir. Aşağıdaki örnek her Wazuh daemon'unun durumunun nasıl alınacağını gösterir:

```
curl -k -X GET "https://localhost:55000/manager/status?pretty=true" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "wazuh-agentlessd": "running",
        "wazuh-analysisd": "running",
        "wazuh-authd": "running",
        "wazuh-csyslogd": "running",
        "wazuh-dbd": "stopped",
        "wazuh-monitord": "running",
        "wazuh-execd": "running",
        "wazuh-integratord": "running",
        "wazuh-logcollector": "running",
        "wazuh-maild": "running",
        "wazuh-remoted": "running",
        "wazuh-reportd": "stopped",
        "wazuh-syscheckd": "running",
        "wazuh-clusterd": "running",
        "wazuh-modulesd": "running",
        "wazuh-db": "running",
        "wazuh-apid": "stopped"
      }
    ],
    "total_affected_items": 1,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "Processes status were successfully read in specified node",
  "error": 0
}
```

Aşağıdaki istekle Wazuh yöneticisinin mevcut yapılandırmasını boşaltabilirsiniz (cevap, kısa olması için kısaltılmıştır):

```
curl -k -X GET "https://localhost:55000/manager/configuration?pretty=true&section=global" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "global": {
          "jsonout_output": "yes",
          "alerts_log": "yes",
          "logall": "no",
          "logall_json": "no",
          "email_notification": "yes",
          "email_to": "me@test.example",
          "smtp_server": "mail.test.example",
          "email_from": "wazuh@test.example",
          "email_maxperhour": "12",
          "email_log_source": "alerts.log",
          "white_list": [
            "127.0.0.1",
            "^localhost.localdomain$",
            "8.8.8.8",
            "8.8.4.4"
          ]
        }
      }
    ],
    "total_affected_items": 1,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "Configuration was successfully read in specified node",
  "error": 0
}
```

</section><section id="bkmrk-wazuh-acente-y%C3%B6netim">### Wazuh Agent Yönetimini Keşfetme

Wazuh ajanlarını yönetmek için Wazuh sunucu API'sini kullanabilirsiniz.

Aşağıdaki istek iki etkin etkeni sıralıyor:

```
curl -k -X GET "https://localhost:55000/agents?pretty=true&offset=1&limit=2&select=status%2Cid%2Cmanager%2Cname%2Cnode_name%2Cversion&status=active" -H  "Authorization: Bearer $TOKEN"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [
      {
        "node_name": "worker2",
        "status": "active",
        "manager": "wazuh-worker2",
        "version": "Wazuh v4.7.4",
        "id": "001",
        "name": "wazuh-agent1"
      },
      {
        "node_name": "worker2",
        "status": "active",
        "manager": "wazuh-worker2",
        "version": "Wazuh v4.7.4",
        "id": "002",
        "name": "wazuh-agent2"
      }
    ],
    "total_affected_items": 9,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "All selected agents information was returned",
  "error": 0
}
```

API isteği göndererek ajan adını ve IP adresini kullanarak yeni bir Wazuh ajanı ekleyin:

```
curl -k -X POST "https://localhost:55000/agents?pretty=true" -H  "Authorization: Bearer $TOKEN" -H  "Content-Type: application/json" -d "{\"name\":\"NewHost\",\"ip\":\"10.0.10.11\"}"
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "id": "013",
    "key": "MDEzIE5ld0hvc3RfMiAxMC4wLjEwLjEyIDkzOTE0MmE4OTQ4YTNlMzA0ZTdiYzVmZTRhN2Q4Y2I1MjgwMWIxNDI4NWMzMzk3N2U5MWU5NGJiMDc4ZDEzNjc="
  },
  "error": 0
}
```

</section><section id="bkmrk-g%C3%BCvenlik-olaylar%C4%B1n%C4%B1-">### Güvenlik Olaylarını İçe Aktarın

<p class="callout danger"><span class="versionmodified added">4.6.0 sürümündeki yenilikler.</span></p>

Güvenlik olaylarını analiz için Wazuh yöneticisine aktarmak amacıyla Wazuh sunucu API'sini kullanabilirsiniz.

Dakikada 30 istek ve istek başına 100 olay sınırı vardır. Bu sınır, uç noktaların büyük miktarda veriyi çok hızlı bir şekilde almasını önler. Bu sınırı daha da düşürmek veya özelliği devre dışı bırakmak için [<span class="std std-ref">max\_request\_per\_minute'i </span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/yapilandirma)işaretleyin.

```
curl -k -X POST "https://localhost:55000/events" -H  "Authorization: Bearer $TOKEN" -H  "Content-Type: application/json" -d '{"events": ["Event value 1", "{\"someKey\": \"Event value 2\"}"]}'
```

<div aria-expanded="true" class="output highlight-json notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div>```
{
  "data": {
    "affected_items": [

    ],
    "total_affected_items": 2,
    "total_failed_items": 0,
    "failed_items": []
  },
  "message": "All events were forwarded to analisysd",
  "error": 0
}
```

</section><section id="bkmrk-%C3%87%C3%B6z%C3%BCm-sonu%C3%A7-olarak%2C-">### Çözüm

Sonuç olarak, bu örnekler Wazuh API'nin yeteneklerini sergiliyor. Mevcut Wazuh sunucu API isteklerinin tam aralığını keşfetmek için [<span class="std std-ref">referans belgesini inceleyin.</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/chapter/referans)

</section>