# Dağıtım

Gerekli servisleri ve pod'ları dağıtmak için bu deponun klonunu oluşturun.

```
git clone https://github.com/wazuh/wazuh-kubernetes.git -b v4.9.2 --depth=1
cd wazuh-kubernetes
```

<div id="bkmrk--1"></div><section id="bkmrk-ssl-sertifikalar%C4%B1n%C4%B1-"><span id="bkmrk--2"></span>### SSL Sertifikalarını Kurun

Wazuh dizinleyici kümesi için kendi kendine imzalı sertifikaları adresindeki betiği kullanarak üretebilir `<span class="pre">wazuh/certs/indexer_cluster/generate_certs.sh</span>`veya kendi betiğinizi sağlayabilirsiniz.

Wazuh panosu kümesi için kendi imzalı sertifikaları adresindeki betiği kullanarak üretebilir `<span class="pre">wazuh/certs/dashboard_http/generate_certs.sh</span>`veya kendi betiğinizi sağlayabilirsiniz.

Gerekli sertifikalar secretGenerator aracılığıyla şu dosyaya aktarılır `<span class="pre">kustomization.yml</span>`:

<div><div class="highlight-yaml notranslate"><div class="highlight" data-pagefind-weight="0.5">  
</div></div></div>```
secretGenerator:
    - name: indexer-certs
      files:
        - certs/indexer_cluster/root-ca.pem
        - certs/indexer_cluster/node.pem
        - certs/indexer_cluster/node-key.pem
        - certs/indexer_cluster/dashboard.pem
        - certs/indexer_cluster/dashboard-key.pem
        - certs/indexer_cluster/admin.pem
        - certs/indexer_cluster/admin-key.pem
        - certs/indexer_cluster/filebeat.pem
        - certs/indexer_cluster/filebeat-key.pem
    - name: dashboard-certs
      files:
        - certs/dashboard_http/cert.pem
        - certs/dashboard_http/key.pem
        - certs/indexer_cluster/root-ca.pem
```

</section><section id="bkmrk-depolama-s%C4%B1n%C4%B1f%C4%B1n%C4%B1-ay">### Depolama Sınıfını Ayarlayın (EKS Olmayan Küme İçin İsteğe Bağlı)

  
Çalıştırdığınız kümenin türüne bağlı olarak, Depolama Sınıfı farklı bir sağlayıcıya sahip olabilir.

Sizinkini çalıştırarak kontrol edebilirsiniz . Şuna benzer bir şey göreceksiniz:`<span class="pre">kubectl</span> <span class="pre">get</span> <span class="pre">sc</span>`

```
kubectl get sc
NAME                          PROVISIONER            RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
elk-gp2                       microk8s.io/hostpath   Delete          Immediate           false                  67d
microk8s-hostpath (default)   microk8s.io/hostpath   Delete          Immediate           false                  54d
```

Provizyonlayıcı sütunu microk8s.io/hostpath'i gösteriyor, dosyayı düzenlemeli `<span class="pre">envs/local-env/storage-class.yaml</span>` ve bu provizyonlayıcıyı ayarlamalısınız.

</section><section id="bkmrk-t%C3%BCm-bildirimleri-kus">### Tüm Bildirimleri Kustomize Kullanarak Uygulayın

Manifest'in iki çeşidi vardır: `<span class="pre">eks</span>`ve `<span class="pre">local-env</span>`. EKS kümesini kullanıyorsanız eks manifest'i kullanılmalıdır, diğer küme türleri için ise local-env manifest'i kullanılmalıdır.

Hangi bildirimi dağıtmak istediğinize bağlı olarak, yamaları düzenleyerek küme için kaynakları ayarlamak mümkündür. Her küme nesnesinin kalıcı birimleri için CPU, bellek ve depolamayı ayarlayabilirsiniz. Bu, bu yamaları kaldırarak `<span class="pre">envs/eks/</span>`veya yamaların kendilerini farklı değerlerle değiştirerek geri alınabilir.`<span class="pre">envs/local-env/</span>``<span class="pre">kustomization.yaml</span>`

Özelleştirme dosyasını kullanarak kümeyi tek bir komutla dağıtabiliriz:

- EKS kümesi
    
    ```
    kubectl apply -k envs/eks/
    ```
- Diğer küme türleri
    
    ```
    kubectl apply -k envs/local-env/
    ```

</section><section id="bkmrk-da%C4%9F%C4%B1t%C4%B1m%C4%B1n-do%C4%9Frulanma">### Dağıtımın Doğrulanması

**Ad alanı**

```
kubectl get namespaces | grep wazuh
```

<div><div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div></div>```
wazuh         Active    12m
```

**Hizmetler**

```
kubectl get services -n wazuh
```

<div><div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div></div>```
NAME                  TYPE           CLUSTER-IP       EXTERNAL-IP        PORT(S)                          AGE
indexer               ClusterIP      xxx.yy.zzz.24    <none>             9200/TCP                         12m
dashboard             ClusterIP      xxx.yy.zzz.76    <none>             5601/TCP                         11m
wazuh                 LoadBalancer   xxx.yy.zzz.209   internal-a7a8...   1515:32623/TCP,55000:30283/TCP   9m
wazuh-cluster         ClusterIP      None             <none>             1516/TCP                         9m
Wazuh-indexer         ClusterIP      None             <none>             9300/TCP                         12m
wazuh-workers         LoadBalancer   xxx.yy.zzz.26    internal-a7f9...   1514:31593/TCP                   9m
```

**Dağıtımlar**

```
kubectl get deployments -n wazuh
```

<div><div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div></div>```
NAME             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
wazuh-dashboard  1         1         1            1           11m
```

**Durum Kümesi**

```
kubectl get statefulsets -n wazuh
```

<div><div class="highlight-console notranslate"><div class="highlight" data-pagefind-weight="0.5">  
</div></div><div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div></div>```
NAME                   READY   AGE
wazuh-indexer          3/3     15m
wazuh-manager-master   1/1     15m
wazuh-manager-worker   2/2     15m
```

**Baklalar**

```
kubectl get pods -n wazuh
```

<div><div class="highlight-console notranslate"><div class="highlight" data-pagefind-weight="0.5">  
</div></div><div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div></div>```
NAME                              READY     STATUS    RESTARTS   AGE
wazuh-indexer-0                   1/1       Running   0          15m
wazuh-dashboard-f4d9c7944-httsd   1/1       Running   0          14m
wazuh-manager-master-0            1/1       Running   0          12m
wazuh-manager-worker-0-0          1/1       Running   0          11m
wazuh-manager-worker-1-0          1/1       Running   0          11m
```

##### Wazuh panosuna erişim

Hizmetler için alan adları oluşturduysanız, önerilen alan adını kullanarak panoya erişebilmelisiniz: `<span class="pre">https://wazuh.your-domain.com</span>`. Bulut sağlayıcıları genellikle panoya doğrudan erişim için harici bir IP adresi veya ana bilgisayar adı sağlar. Bu, hizmetleri kontrol ederek görüntülenebilir:

```
kubectl get services -o wide -n wazuh
```

<div><div class="highlight-console notranslate"><div class="highlight" data-pagefind-weight="0.5">  
</div></div><div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">**Output**</div></div></div>```
 NAME                  TYPE           CLUSTER-IP       EXTERNAL-IP                      PORT(S)                          AGE       SELECTOR
 dashboard             LoadBalancer   xxx.xx.xxx.xxx   xxx.xx.xxx.xxx                   80:31831/TCP,443:30974/TCP       15m       app=wazuh-dashboard
```

**İsteğe bağlı** : Harici IP adresine erişilemeyen yerel bir küme dağıtımında şunları kullanabilirsiniz `<span class="pre">port-forward</span>`:

```
kubectl -n wazuh port-forward --address <INTERFACE_IP_ADDRESS> service/dashboard 8443:443
```

`<span class="pre"><INTERFACE_IP_ADDRESS></span>`Kubernetes ana bilgisayarının IP adresi nerede ?

Wazuh kontrol paneline şu adresten ulaşabilirsiniz `<span class="pre">https://<INTERFACE_IP_ADDRESS>:8443</span>`: .

Varsayılan kimlik bilgileri şunlardır `<span class="pre">admin:SecretPassword</span>`: .

</section><section id="bkmrk-wazuh-kullan%C4%B1c%C4%B1lar%C4%B1n">### Wazuh Kullanıcılarının Şifresini Değiştirin

Güvenliği artırmak için Wazuh kullanıcılarının varsayılan şifresini değiştirebilirsiniz. İki tür Wazuh kullanıcısı vardır:

- Wazuh dizinleyici kullanıcıları
- Wazuh API kullanıcıları

<section id="bkmrk-wazuh-dizinleyici-ku">#### Wazuh Dizinleyici Kullanıcıları

Varsayılan `<span class="pre">admin</span>` ve `<span class="pre">kibanaserver</span>` kullanıcıların şifrelerini değiştirmek için aşağıdakileri yapın.

<p class="callout warning">Uyarı: Özel kullanıcılarınız varsa, bunları `<span class="pre">internal_users.yml</span>` dosyaya ekleyin. Aksi takdirde, bu prosedürü yürütmek onları siler.</p>

<section id="bkmrk-wazuh-panosu-oturumu">#### Wazuh Dashboard Oturumunuzu Kapatma

Şifre değiştirme işlemine başlamadan önce Wazuh kontrol paneli oturumunuzdan çıkış yapmanızı öneririz.

Çıkış yapmadığınız takdirde, kalıcı oturum çerezleri kullanıcı şifrelerini değiştirdikten sonra Wazuh'a erişirken hatalara neden olabilir.

</section><section id="bkmrk-yeni-bir-karma-ayarl">#### Yeni Bir Hash Ayarlama

1. `<span class="pre">wazuh-indexer-0</span>`'de bir Bash kabuğu başlatın.
    
    ```
    kubectl exec -it wazuh-indexer-0 -n wazuh -- /bin/bash
    ```
2. Yeni parolanızın karmasını oluşturmak için bu komutları çalıştırın. İstendiğinde, yeni parolayı girin ve **Enter'a** basın.
    
    ```
    wazuh-indexer@wazuh-indexer-0:~$ export JAVA_HOME=/usr/share/wazuh-indexer/jdk
    wazuh-indexer@wazuh-indexer-0:~$ bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/hash.sh
    ```
3. Oluşturulan hash'i kopyalayın ve Bash kabuğundan çıkın.
4. Dosyayı açın `<span class="pre">wazuh/indexer_stack/wazuh-indexer/indexer_conf/internal_users.yml</span>`. Şifresini değiştirdiğiniz kullanıcıya ait bloğu bulun.
5. Karmayı değiştirin.
    
    
    - `<span class="pre">admin</span>`kullanıcı
        
        ```
        ...
        admin:
            hash: "$2y$12$K/SpwjtB.wOHJ/Nc6GVRDuc1h0rM1DfvziFRNPtk27P.c4yDr9njO"
            reserved: true
            backend_roles:
            - "admin"
            description: "Demo admin user"
        
        ...
        ```
    - `<span class="pre">kibanaserver</span>`kullanıcı
        
        ```
        ...
        kibanaserver:
            hash: "$2a$12$4AcgAt3xwOWadA5s5blL6ev39OXDNhmOesEoo33eZtrq2N0YrU3H."
            reserved: true
            description: "Demo kibanaserver user"
        
        ...
        ```

</section><section id="bkmrk-yeni-%C5%9Fifreyi-ayarlam">#### Yeni Şifreyi Ayarlama

<p class="callout warning">Uyarı: Yeni şifrenizde `<span class="pre">$</span>`veya `<span class="pre">&</span>` karakterlerini kullanmayın . Bu karakterler dağıtım sırasında hatalara neden olabilir.</p>

1. Yeni parolanızı base64 biçiminde kodlayın. Karma değerini korumak için son satır karakteri eklemekten kaçının. Örneğin, seçeneği `<span class="pre">-n</span>`komutla `<span class="pre">echo</span>`aşağıdaki gibi kullanın.
    
    ```
    echo -n "NewPassword" | base64
    ```
2. Dizinleyici veya pano sırları yapılandırma dosyasını aşağıdaki gibi düzenleyin. Alanın değerini `<span class="pre">password</span>`yeni kodlanmış parolanızla değiştirin.
    
    
    - Kullanıcı şifresini değiştirmek için dosyayı `<span class="pre">admin</span>`düzenleyin `<span class="pre">wazuh/secrets/indexer-cred-secret.yaml</span>`.
        
        ```
        ...
        apiVersion: v1
        kind: Secret
        metadata:
            name: indexer-cred
        data:
            username: YWRtaW4=              # string "admin" base64 encoded
            password: U2VjcmV0UGFzc3dvcmQ=  # string "SecretPassword" base64 encoded
        ...
        ```
    - Kullanıcı şifresini değiştirmek için dosyayı `<span class="pre">kibanaserver</span>`düzenleyin `<span class="pre">wazuh/secrets/dashboard-cred-secret.yaml</span>`.
        
        ```
        ...
        apiVersion: v1
        kind: Secret
        metadata:
            name: dashboard-cred
        data:
            username: a2liYW5hc2VydmVy  # string "kibanaserver" base64 encoded
            password: a2liYW5hc2VydmVy  # string "kibanaserver" base64 encoded
        ...
        ```

</section><section id="bkmrk-de%C4%9Fi%C5%9Fiklikleri-uygul">#### Değişiklikleri Uygulama

1. Bildirim değişikliklerini uygulayın
    
    
    - EKS kümesi
        
        ```
        kubectl apply -k envs/eks/
        ```
    - Diğer küme türleri
        
        ```
        kubectl apply -k envs/local-env/
        ```
2. Bir kez daha bash kabuğunu başlatın `<span class="pre">wazuh-indexer-0</span>`.
    
    ```
    kubectl exec -it wazuh-indexer-0 -n wazuh -- /bin/bash
    ```
3. Aşağıdaki değişkenleri ayarlayın:
    
    ```
    export INSTALLATION_DIR=/usr/share/wazuh-indexer
    CACERT=$INSTALLATION_DIR/certs/root-ca.pem
    KEY=$INSTALLATION_DIR/certs/admin-key.pem
    CERT=$INSTALLATION_DIR/certs/admin.pem
    export JAVA_HOME=/usr/share/wazuh-indexer/jdk
    ```
4. Wazuh dizinleyicisinin düzgün bir şekilde başlatılmasını bekleyin. Bekleme süresi iki ila beş dakika arasında değişebilir. Kümenin boyutuna, atanan kaynaklara ve ağın hızına bağlıdır. Ardından, `<span class="pre">securityadmin.sh</span>`tüm değişiklikleri uygulamak için scripti çalıştırın.
    
    ```
    bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/securityadmin.sh -cd /usr/share/wazuh-indexer/opensearch-security/ -nhnv -cacert  $CACERT -cert $CERT -key $KEY -p 9200 -icl -h $NODE_NAME
    ```
5. Bileşen kimlik bilgilerini güncellemek için tüm Wazuh yönetici bölmelerini silin.
    
    ```
    kubectl delete -n wazuh pod/wazuh-manager-master-0 pod/wazuh-manager-worker-0 pod/wazuh-manager-worker-1
    ```
6. Wazuh kontrol panelinde yeni kimlik bilgilerinizle giriş yapın.

</section></section><section id="bkmrk-wazuh-api-kullan%C4%B1c%C4%B1l">#### Wazuh API Kullanıcıları

Kullanıcı `<span class="pre">wazuh-wui</span>`, varsayılan olarak Wazuh API'sine bağlanacak kullanıcıdır. Parolayı değiştirmek için şu adımları izleyin.

<p class="callout info">Not: Wazuh API kullanıcıları için parola 8 ila 64 karakter uzunluğunda olmalıdır. En az bir büyük harf ve bir küçük harf, bir sayı ve bir sembol içermelidir.</p>

1. Yeni parolanızı base64 biçiminde kodlayın. Karma değerini korumak için son satır karakteri eklemekten kaçının. Örneğin, seçeneği `<span class="pre">-n</span>`komutla `<span class="pre">echo</span>`aşağıdaki gibi kullanın.
    
    ```
    echo -n "NewPassword" | base64
    ```
2. `<span class="pre">wazuh/secrets/wazuh-api-cred-secret.yaml</span>` dosyayı düzenleyin ve `<span class="pre">password</span>` alanın değerini değiştirin .
    
    ```
    apiVersion: v1
    kind: Secret
    metadata:
        name: wazuh-api-cred
        namespace: wazuh
    data:
        username: d2F6dWgtd3Vp          # string "wazuh-wui" base64 encoded
        password: UGFzc3dvcmQxMjM0LmE=  # string "MyS3cr37P450r.*-" base64 encoded
    ```
3. Manifest değişikliklerini uygulayın.
    
    ```
    kubectl apply -k envs/eks/
    ```
4. Wazuh panosu ve Wazuh yöneticisi ana bilgisayarı için pod'ları yeniden başlatın.

</section></section><section id="bkmrk-acentelerbu-ba%C5%9Fl%C4%B1%C4%9Fa-">### Agentlar

Wazuh ajanları ana bilgisayarları izlemek için tasarlanmıştır. Bunları kullanmaya başlamak için:

1. [<span class="doc">Ajanı yükleyin</span>](https://acikkaynak.lastguard.com.tr/books/kurulum-rehberi/chapter/wazuh-agent) .
2. Dosyayı değiştirerek aracı kaydedin `<span class="pre">/var/ossec/etc/ossec.conf</span>`. "Taşıma protokolünü" TCP olarak değiştirin ve 'yi `<span class="pre">MANAGER_IP</span>`1514 numaralı bağlantı noktasına işaret eden hizmetin harici IP adresiyle veya bulut sağlayıcısı tarafından sağlanan ana bilgisayar adıyla değiştirin

Acentelerin kaydedilmesi hakkında daha fazla bilgi edinmek için dokümantasyonun [<span class="doc">Wazuh acente kaydı bölümüne bakın.</span>](https://documentation.wazuh.com/current/user-manual/agent/agent-enrollment/index.html)

</section>