# Puppet Aracılığıyla Bir Yığın Kurun

Bu [modül](https://github.com/wazuh/wazuh-puppet) Nicolas Zin tarafından yazılmış ve Jonathan Gazeley ve Michael Porter tarafından güncellenmiştir. Wazuh, onu sürdürme amacıyla çatallamıştır. Katkılarından dolayı yazarlara teşekkür ederiz.

<section id="bkmrk-wazuh-mod%C3%BCl%C3%BCn%C3%BC-kurun">### Wazuh Modülünü Kurun

Puppet Forge'dan Wazuh modülünü indirin ve kurun:

```
puppet module install wazuh-wazuh --version 4.9.2
```

<div><div aria-expanded="true" class="output highlight-none notranslate collapsible expanded"><div class="output-title" role="button">Output</div></div></div>```
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
Notice: Downloading from https://forgeapi.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/environments/production/modules
└─┬ wazuh-wazuh (v4.9.2)
  ├── puppet-nodejs (v7.0.1)
  ├── puppet-selinux (v3.4.1)
  ├── puppetlabs-apt (v7.7.1)
  ├─┬ puppetlabs-concat (v6.4.0)
  │ └── puppetlabs-translate (v2.2.0)
  ├── puppetlabs-firewall (v2.8.1)
  ├─┬ puppetlabs-powershell (v4.1.0)
  │ └── puppetlabs-pwshlib (v0.10.1)
  └── puppetlabs-stdlib (v6.6.0)
```

Bu modül Wazuh aracısını ve yöneticisini kurar ve yapılandırır.

</section><section id="bkmrk-puppet-arac%C4%B1l%C4%B1%C4%9F%C4%B1yla-">### Puppet Aracılığıyla Bir Yığın Kurun

<section id="bkmrk-tek-d%C3%BC%C4%9F%C3%BCm-tek-d%C3%BC%C4%9F%C3%BCml">#### Tek Düğüm

Tek düğümlü bir yığını dağıtmak için aşağıda gösterilen bildirimi kullanabilirsiniz. Bu yığın şunlardan oluşur:

- Wazuh gösterge paneli
- Wazuh dizinleyici
- Wazuh yöneticisi
- Dosyabeat

Aşağıdaki içerikle `<span class="pre">stack.pp</span>`dosyayı oluşturun :`<span class="pre">/etc/puppetlabs/code/environments/production/manifests/</span>`

- `<span class="pre">puppet-aio-node</span>`: Puppet aracısının ana bilgisayar adı veya IP adresi.
- `<span class="pre">puppet-server</span>`: Wazuh modülü kurulduğunda Puppet sunucusunun ana bilgisayar adı veya IP adresi.

```
$discovery_type = 'single-node'
stage { 'certificates': }
stage { 'repo': }
stage { 'indexerdeploy': }
stage { 'securityadmin': }
stage { 'dashboard': }
stage { 'manager': }
Stage[certificates] -> Stage[repo] -> Stage[indexerdeploy] -> Stage[securityadmin] -> Stage[manager] -> Stage[dashboard]
Exec {
timeout => 0,
}
node "puppet-server" {
class { 'wazuh::certificates':
  indexer_certs => [['node-1','127.0.0.1']],
  manager_certs => [['master','127.0.0.1']],
  dashboard_certs => ['127.0.0.1'],
  stage => certificates,
}
}
node "puppet-aio-node" {
class { 'wazuh::repo':
stage => repo,
}
class { 'wazuh::indexer':
  stage => indexerdeploy,
}
class { 'wazuh::securityadmin':
stage => securityadmin
}
class { 'wazuh::manager':
  stage => manager,
}
class { 'wazuh::filebeat_oss':
  stage => manager,
}
class { 'wazuh::dashboard':
  stage => dashboard,
}
}
```

</section><section id="bkmrk-%C3%87oklu-d%C3%BC%C4%9F%C3%BCmbu-ba%C5%9Fl%C4%B1%C4%9F">#### Çoklu Düğüm

Aşağıdaki çoklu düğüm bildirimini kullanarak, aşağıdaki düğümlerden oluşan dağıtılmış bir yığını üç farklı sunucuya veya Sanal Makineye (VM) dağıtabilirsiniz.

- 3 dizinleyici düğümü
- Yönetici ana düğümü
- Yönetici işçi düğümü
- Pano düğümü

Her uygulamayı yüklediğiniz sunucuların IP adreslerini mutlaka eklemelisiniz.

```
$node1host   = '<WAZUH_INDEXER_NODE1_IP_ADDRESS>'
$node2host   = '<WAZUH_INDEXER_NODE2_IP_ADDRESS>'
$node3host   = '<WAZUH_INDEXER_NODE3_IP_ADDRESS>'
$masterhost    = '<WAZUH_MANAGER_MASTER_IP_ADDRESS>'
$workerhost    = '<WAZUH_MANAGER_WORKER_IP_ADDRESS>'
$dashboardhost = '<WAZUH_DASHBOARD_IP_ADDRESS>'
$indexer_node1_name = 'node1'
$indexer_node2_name = 'node2'
$indexer_node3_name = 'node3'
$master_name = 'master'
$worker_name = 'worker'
$cluster_size = '3'
$indexer_discovery_hosts = [$node1host, $node2host, $node3host]
$indexer_cluster_initial_master_nodes = [$node1host, $node2host, $node3host]
$indexer_cluster_CN = [$indexer_node1_name, $indexer_node2_name, $indexer_node3_name]
Define stage for order execution
stage { 'certificates': }
stage { 'repo': }
stage { 'indexerdeploy': }
stage { 'securityadmin': }
stage { 'dashboard': }
stage { 'manager': }
Stage[certificates] -> Stage[repo] -> Stage[indexerdeploy] -> Stage[securityadmin] -> Stage[manager] -> Stage[dashboard]
Exec {
timeout => 0,
}
node "puppet-server" {
class { 'wazuh::certificates':
  indexer_certs => [["$indexer_node1_name","$node1host" ],["$indexer_node2_name","$node2host" ],["$indexer_node3_name","$node3host" ]],
  manager_master_certs => [["$master_name","$masterhost"]],
  manager_worker_certs => [["$worker_name","$workerhost"]],
  dashboard_certs => ["$dashboardhost"],
  stage => certificates
}
class { 'wazuh::repo':
stage => repo
}
}
node "puppet-wazuh-indexer-node1" {
class { 'wazuh::repo':
stage => repo
}
class { 'wazuh::indexer':
  indexer_node_name => "$indexer_node1_name",
  indexer_network_host => "$node1host",
  indexer_node_max_local_storage_nodes => "$cluster_size",
  indexer_discovery_hosts => $indexer_discovery_hosts,
  indexer_cluster_initial_master_nodes => $indexer_cluster_initial_master_nodes,
  indexer_cluster_CN => $indexer_cluster_CN,
  stage => indexerdeploy
}
class { 'wazuh::securityadmin':
indexer_network_host => "$node1host",
stage => securityadmin
}
}
node "puppet-wazuh-indexer-node2" {
class { 'wazuh::repo':
stage => repo
}
class { 'wazuh::indexer':
  indexer_node_name => "$indexer_node2_name",
  indexer_network_host => "$node2host",
  indexer_node_max_local_storage_nodes => "$cluster_size",
  indexer_discovery_hosts => $indexer_discovery_hosts,
  indexer_cluster_initial_master_nodes => $indexer_cluster_initial_master_nodes,
  indexer_cluster_CN => $indexer_cluster_CN,
  stage => indexerdeploy
}
}
node "puppet-wazuh-indexer-node3" {
class { 'wazuh::repo':
stage => repo
}
class { 'wazuh::indexer':
  indexer_node_name => "$indexer_node3_name",
  indexer_network_host => "$node3host",
  indexer_node_max_local_storage_nodes => "$cluster_size",
  indexer_discovery_hosts => $indexer_discovery_hosts,
  indexer_cluster_initial_master_nodes => $indexer_cluster_initial_master_nodes,
  indexer_cluster_CN => $indexer_cluster_CN,
  stage => indexerdeploy
}
}
node "puppet-wazuh-manager-master" {
class { 'wazuh::repo':
stage => repo
}
class { 'wazuh::manager':
  ossec_cluster_name => 'wazuh-cluster',
  ossec_cluster_node_name => 'wazuh-master',
  ossec_cluster_node_type => 'master',
  ossec_cluster_key => '01234567890123456789012345678912',
  ossec_cluster_bind_addr => "$masterhost",
  ossec_cluster_nodes => ["$masterhost"],
  ossec_cluster_disabled => 'no',
  stage => manager
}
class { 'wazuh::filebeat_oss':
  filebeat_oss_indexer_ip => "$node1host",
  wazuh_node_name => "$master_name",
  stage => manager
}
}
node "puppet-wazuh-manager-worker" {
class { 'wazuh::repo':
stage => repo
}
class { 'wazuh::manager':
  ossec_cluster_name => 'wazuh-cluster',
  ossec_cluster_node_name => 'wazuh-worker',
  ossec_cluster_node_type => 'worker',
  ossec_cluster_key => '01234567890123456789012345678912',
  ossec_cluster_bind_addr => "$masterhost",
  ossec_cluster_nodes => ["$masterhost"],
  ossec_cluster_disabled => 'no',
  stage => manager
}
class { 'wazuh::filebeat_oss':
  filebeat_oss_indexer_ip => "$node1host",
  wazuh_node_name => "$worker_name",
  stage => manager
}
}
node "puppet-wazuh-dashboard" {
class { 'wazuh::repo':
stage => repo,
}
class { 'wazuh::dashboard':
  indexer_server_ip  => "$node1host",
  manager_api_host   => "$masterhost",
  stage => dashboard
}
}
```

Manifest'te açıklanan kukla düğümlerinin IP adresleriyle olan ilişkisi şu şekildedir:

- `<span class="pre">puppet-wazuh-indexer-node1</span>`= `<span class="pre">node1host</span>`. Wazuh indeksleyici node1.
- `<span class="pre">puppet-wazuh-indexer-node2</span>`= `<span class="pre">node2host</span>`. Wazuh indeksleyici node2.
- `<span class="pre">puppet-wazuh-indexer-node3</span>`= `<span class="pre">node3host</span>`. Wazuh indeksleyici node3.
- `<span class="pre">puppet-wazuh-manager-master</span>`= `<span class="pre">masterhost</span>`. Wazuh yönetici ustası.
- `<span class="pre">puppet-wazuh-manager-worker</span>`= `<span class="pre">workerhost</span>`. Wazuh yönetici işçi.
- `<span class="pre">puppet-wazuh-dashboard</span>`= `<span class="pre">dashboardhost</span>`. Wazuh panosu düğümü.

Sınıfın , Wazuh modülünün kurulu olduğu `<span class="pre">wazuh::certificates</span>`Puppet sunucusunda ( `<span class="pre">puppet-server</span>`) uygulanması gerekir. Bu, arşiv modülünün Wazuh yığın dağıtımındaki tüm sunuculara dosyaları dağıtmak için kullanılması nedeniyle gereklidir.

Daha fazla Wazuh dizinleyici düğümüne ihtiyacınız varsa, yeni değişkenler ekleyin. Örneğin `<span class="pre">indexer_node4_name</span>`ve `<span class="pre">node4host</span>`. Bunları aşağıdaki dizilere ekleyin:

- `<span class="pre">indexer_discovery_hosts</span>`
- `<span class="pre">indexer_cluster_initial_master_nodes</span>`
- `<span class="pre">indexer_cluster_CN</span>`
- `<span class="pre">indexer_certs</span>`

`<span class="pre">puppet-wazuh-indexer-node2</span>`Ek olarak, veya benzeri yeni bir düğüm örneği eklemeniz gerekir `<span class="pre">puppet-wazuh-indexer-node3</span>`. Wazuh dizinleyici node1 örneğinin aksine, bu örnekler . çalıştırmaz `<span class="pre">securityadmin</span>`.

Bir Wazuh yönetici çalışan sunucusu eklemeniz gerekirse, . gibi yeni bir değişken ekleyin `<span class="pre">worker2host</span>`. Değişkeni diziye ekleyin `<span class="pre">manager_worker_certs</span>`. Örneğin, `<span class="pre">['worker',"$worker2host"]</span>`. Ardından, düğüm örneğini `<span class="pre">puppet-wazuh-manager-worker</span>`yeni sunucuyla çoğaltın.

Dosyayı `<span class="pre">/etc/puppetlabs/code/environments/production/manifests/</span>`Puppet master'ınıza yerleştirin. Belirtilen düğümde `<span class="pre">runinterval</span>`, ayarlandığı gibi, zaman `<span class="pre">puppet.conf</span>`geçtikten sonra yürütülür. Ancak, bildirimi belirli bir düğümde hemen çalıştırmak istiyorsanız, düğümde aşağıdaki komutu çalıştırın:

```
puppet agent -t
```

</section></section><section id="bkmrk-wazuh-kullan%C4%B1c%C4%B1lar%C4%B1-">### Wazuh Kullanıcıları İçin Şifreyi Değiştir

[<span class="doc">Wazuh kullanıcı parolalarınızı değiştirmek için Parola Yönetimi</span>](https://acikkaynak.lastguard.com.tr/books/kullanim-kilavuzu/page/sifre-yonetimi) bölümündeki talimatları izleyin . Parolaları değiştirdikten sonra, Wazuh Stack'i dağıtmak için kullanılan sınıflar içinde yeni parolaları ayarlayın.

<section id="bkmrk-dizinleyici-kullan%C4%B1c">#### Dizinleyici Kullanıcıları

- `<span class="pre">admin</span>`kullanıcı:
    
    ```
    node "puppet-agent.com" {
      class { 'wazuh::dashboard':
        dashboard_password => '<NEW_PASSWORD>'
      }
    }
    ```
- `<span class="pre">kibanaserver</span>`kullanıcı:
    
    ```
    node "puppet-agent.com" {
      class { 'wazuh::filebeat_oss':
        filebeat_oss_elastic_password  => '<NEW_PASSWORD>'
      }
    }
    ```

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

- `<span class="pre">wazuh-wui</span>`kullanıcı:
    
    ```
    node "puppet-agent.com" {
      class { 'wazuh::dashboard':
        dashboard_wazuh_api_credentials => '<NEW_PASSWORD>'
      }
    }
    ```

</section></section><section id="bkmrk-puppet-arac%C4%B1l%C4%B1%C4%9F%C4%B1yla--2">### Puppet Aracılığıyla Wazuh Agent Yükleyin

Sınıfın kurulmasıyla ajan yapılandırılır `<span class="pre">wazuh::agent</span>`.

İşte bir manifesto örneği `<span class="pre">wazuh-agent.pp</span>`(lütfen `<span class="pre"><MANAGER_IP_ADDRESS></span>`yöneticinizin IP adresiyle değiştirin).

```
node "puppet-agent.com" {
  class { 'wazuh::repo':
  }
  class { "wazuh::agent":
    wazuh_register_endpoint => "<MANAGER_IP_ADDRESS>",
    wazuh_reporting_endpoint => "<MANAGER_IP_ADDRESS>"
  }
}
```

Dosyayı Puppet ana makinenize yerleştirin ve belirtilen düğümde ayarlanan zamandan `<span class="pre">/etc/puppetlabs/code/environments/production/manifests/</span>`sonra yürütülecektir . Ancak, önce çalıştırmak istiyorsanız, Puppet aracısında aşağıdaki komutu deneyin.`<span class="pre">runinterval</span>``<span class="pre">puppet.conf</span>`

```
puppet agent -t
```

</section>