Ana içeriğe geç

Bireysel paketlerden yüklenmiş Wallarm NGINX Modüllerinin Yükseltmesi

# Wallarm NGINX Modüllerinin Yükseltilmesi

Bu talimatlar, Wallarm NGINX modüllerinin 4.x sürümünü ayrı paketlerden kurulanların 5.0 sürümüne yükseltilmesi için adımları tanımlar. Bu modüller aşağıdaki talimatlardan biri doğrultusunda kurulmuştur:

* NGINX stable için ayrı paketler
* NGINX Plus için ayrı paketler
* Dağıtım tarafından sağlanan NGINX için ayrı paketler

!!! info "All-in-one installer ile Yükseltme"
    4.10 sürümünden itibaren, bireysel Linux paketleri kullanımdan kaldırıldığından, yükseltme Wallarm'ın [all-in-one installer](../installation/nginx/all-in-one.md) kullanılarak gerçekleştirilmektedir. Bu yöntem, önceki yaklaşıma kıyasla yükseltme sürecini ve sürekli dağıtım bakımını basitleştirir.

    Yükleyici otomatik olarak aşağıdaki işlemleri gerçekleştirir:

    1. İşletim sistemi ve NGINX sürümünüzün kontrol edilmesi.
    1. Algılanan işletim sistemi ve NGINX sürümü için Wallarm depolarının eklenmesi.
    1. Bu depolardan Wallarm paketlerinin kurulması.
    1. Kurulan Wallarm modülünün NGINX'inize entegre edilmesi.
    1. Sağlanan token kullanılarak filtreleme node'unun Wallarm Cloud'a bağlanması.

    ![All-in-one compared to manual](../images/installation-nginx-overview/manual-vs-all-in-one.png)

Ömrünü tamamlamış node'u (3.6 veya daha düşük) yükseltmek için lütfen [farklı talimatları](older-versions/nginx-modules.md) kullanın.

## Gereksinimler

* Access to the account with the **Administrator** role in Wallarm Console for the [US Cloud](https://us1.my.wallarm.com/) or [EU Cloud](https://my.wallarm.com/).
* Access to `https://meganode.wallarm.com` to download all-in-one Wallarm installer. Ensure the access is not blocked by a firewall.
* Access to `https://us1.api.wallarm.com` for working with US Wallarm Cloud or to `https://api.wallarm.com` for working with EU Wallarm Cloud. If access can be configured only via the proxy server, then use the [instructions][configure-proxy-balancer-instr].
* Executing all commands as a superuser (e.g. `root`).
* Access to the IP addresses below for downloading updates to attack detection rules and API specifications, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers.

    === "US Cloud"
        ```
        34.96.64.17
        34.110.183.149
        35.235.66.155
        34.102.90.100
        34.94.156.115
        35.235.115.105
        ```
    === "EU Cloud"
        ```
        34.160.38.183
        34.144.227.90
        34.90.110.226
        ```

## Yükseltme Prosedürü

* Eğer filtreleme node ve postanalytics modülleri aynı sunucuda kurulu ise, aşağıdaki talimatları izleyerek tüm modülleri yükseltin.

    Yeni sürümü çalışır durumda bir node'u temiz bir makinada all-in-one installer kullanarak çalıştırmanız, düzgün çalıştığını test etmeniz, eski node'u durdurmanız ve eski node yerine yeni makinadan trafik akışını yapılandırmanız gerekecektir.

* Eğer filtreleme node ve postanalytics modülleri farklı sunucularda kuruluysa, **önce** postanalytics modülünü ve **sonra** [bu talimatları](../updating-migrating/separate-postanalytics.md) izleyerek filtreleme modülünü yükseltin.

## Adım 1: Temiz Makine Hazırlama

When upgrading modules with all-in-one installer, you cannot upgrade an old package installation - instead you need to use a clean machine. Thus, as step 1, prepare a machine with one of the supported OS:

* Debian 10, 11 and 12.x
* Ubuntu LTS 18.04, 20.04, 22.04
* CentOS 7, 8 Stream, 9 Stream
* Alma/Rocky Linux 9
* RHEL 8.x
* RHEL 9.x
* Oracle Linux 8.x
* Oracle Linux 9.x
* Redox
* SuSe Linux
* Others (the list is constantly widening, contact [Wallarm support team](mailto:support@wallarm.com) to check if your OS is in the list)

Using new clean machine will lead to that at some moment you will have both old and new node, which is good: you can test the new one working properly without stopping the old one.

## Adım 2: En Son NGINX ve Bağımlılıkları Kurma

Install the latest NGINX version of:

* **NGINX `stable`** (the latest supported version is v1.28.0) - see how to install it in the NGINX [documentation](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/).
* **NGINX Mainline** (the latest supported version is v1.27.5) - see how to install it in the NGINX [documentation](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/).
* **NGINX Plus** (the latest supported version is NGINX Plus R33) - see how to install it in the NGINX [documentation](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-plus/).
* **Distribution-Provided NGINX** - to install, use the following commands:

    === "Debian"
        ```bash
        sudo apt update 
        sudo apt -y install --no-install-recommends nginx
        ```
    === "Ubuntu"
        ```bash
        sudo apt-get update
        sudo apt-get install nginx
        ```
    === "CentOS"
        ```bash
        sudo yum -y update 
        sudo yum install -y nginx
        ```
    === "AlmaLinux, Rocky Linux or Oracle Linux 8.x"
        ```bash
        sudo yum -y update 
        sudo yum install -y nginx
        ```
    === "RHEL 8.x"
        ```bash
        sudo yum -y update 
        sudo yum install -y nginx
        ```

## Adım 3: Wallarm Token Hazırlama

To install node, you will need a Wallarm token of the [appropriate type][wallarm-token-types]. To prepare a token:

=== "API token"

    1. Open Wallarm Console → **Settings****API tokens** in the [US Cloud](https://us1.my.wallarm.com/settings/api-tokens) or [EU Cloud](https://my.wallarm.com/settings/api-tokens).
    1. Find or create API token with the `Node deployment/Deployment` usage type.
    1. Copy this token.

=== "Node token"

    1. Open Wallarm Console → **Nodes** in the [US Cloud](https://us1.my.wallarm.com/nodes) or [EU Cloud](https://my.wallarm.com/nodes).
    1. Do one of the following: 
        * Create the node of the **Wallarm node** type and copy the generated token.
        * Use existing node group - copy token using node's menu → **Copy token**.

## Adım 4: All-in-One Wallarm Yükleyicisini İndirin

Wallarm suggests all-in-one installations for the following processors:

* x86_64
* ARM64 (beta)

To download all-in-one Wallarm installation script, execute the command:

=== "x86_64 version"
    ```bash
    curl -O https://meganode.wallarm.com/6.1/wallarm-6.1.0.x86_64-glibc.sh
    ```
=== "ARM64 version (beta)"
    ```bash
    curl -O https://meganode.wallarm.com/6.1/wallarm-6.1.0.aarch64-glibc.sh
    ```

## Adım 5: All-in-One Wallarm Yükleyicisinin Çalıştırılması

### Aynı Sunucuda Filtreleme Node ve Postanalytics

1. Run downloaded script:

    === "API token"
        ```bash
        # If using the x86_64 version:
        sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.1.0.x86_64-glibc.sh

        # If using the ARM64 version:
        sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.1.0.aarch64-glibc.sh
        ```        

        The `WALLARM_LABELS` variable sets group into which the node will be added (used for logical grouping of nodes in the Wallarm Console UI).

    === "Node token"
        ```bash
        # If using the x86_64 version:
        sudo sh wallarm-6.1.0.x86_64-glibc.sh

        # If using the ARM64 version:
        sudo sh wallarm-6.1.0.aarch64-glibc.sh
        ```

1. Select [US Cloud](https://us1.my.wallarm.com/) or [EU Cloud](https://my.wallarm.com/).
1. Enter Wallarm token.

### Farklı Sunucularda Filtreleme Node ve Postanalytics

!!! warning "Filtreleme Node ve Postanalytics Modüllerinin Yükseltilme Adımlarının Sıralaması"
    Eğer filtreleme node ve postanalytics modülleri farklı sunucularda kuruluysa, filtreleme node paketlerini güncellemeden önce postanalytics paketlerini yükseltmek gerekmektedir.

1. Postanalytics modülünü bu [talimatları](separate-postanalytics.md) izleyerek yükseltin.
1. Filtreleme node'u yükseltin:

    === "API token"
        ```bash
        # Eğer x86_64 sürümü kullanılıyorsa:
        sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.x86_64-glibc.sh filtering

        # Eğer ARM64 sürümü kullanılıyorsa:
        sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.aarch64-glibc.sh filtering
        ```        

        `WALLARM_LABELS` değişkeni, node'un ekleneceği grubu ayarlar (Wallarm Console UI'da node'ların mantıksal gruplandırılması için kullanılır).

    === "Node token"
        ```bash
        # Eğer x86_64 sürümü kullanılıyorsa:
        sudo sh wallarm-5.3.0.x86_64-glibc.sh filtering

        # Eğer ARM64 sürümü kullanılıyorsa:
        sudo sh wallarm-5.3.0.aarch64-glibc.sh filtering
        ```

## Adım 6: Eski Node Makinesinden Yeniye NGINX ve Postanalytics Yapılandırmasının Aktarılması

Eski makinedeki yapılandırma dosyalarından yeni makinadaki dosyalara node ile ilgili NGINX yapılandırması ve postanalytics yapılandırmasını aktarın. Gerekli direktifleri kopyalayarak bunu gerçekleştirebilirsiniz.

**Kaynak Dosyalar**

Eski bir makinada, işletim sistemi ve NGINX sürümüne bağlı olarak NGINX yapılandırma dosyaları farklı dizinlerde yer alabilir ve farklı isimlere sahip olabilir. En yaygın olanlar şunlardır:

* `/etc/nginx/conf.d/default.conf` – NGINX ayarlarını içerir.
* `/etc/nginx/conf.d/wallarm-status.conf` – Wallarm node izleme ayarlarını içerir. Detaylı açıklama [link][wallarm-status-instr] içinde bulunmaktadır.

Ayrıca, postanalytics modülünün yapılandırması (Tarantool veritabanı ayarları) genellikle burada bulunur:

* `/etc/default/wallarm-tarantool` veya
* `/etc/sysconfig/wallarm-tarantool`

**Hedef Dosyalar**

All-in-one installer, işletim sistemi ve NGINX sürümlerinin farklı kombinasyonlarıyla çalıştığından, yeni makinenizde [hedef dosyalar](https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/) farklı isimlere sahip olabilir ve farklı dizinlerde yer alabilir.

## Adım 7: NGINX'i Yeniden Başlatın

Restart NGINX using the following command:

```bash
sudo systemctl restart nginx

Adım 8: Wallarm Node İşleyişini Test Edin

Yeni node işleyişini test etmek için:

  1. Korumalı kaynak adresine test [SQLI][sqli-attack-docs] ve [XSS][xss-attack-docs] saldırıları içeren isteği gönderin:

    curl http://localhost/?id='or+1=1--a-<script>prompt(1)</script>'
    
  2. Wallarm Console → Attacks bölümünü US Cloud veya EU Cloud üzerinden açın ve saldırıların listede görüntülendiğinden emin olun.

  3. Cloud'da depolanan verileriniz (kurallar, IP listeleri) yeni node ile senkronize olunca, kurallarınızın beklendiği gibi çalıştığını test etmek için bazı saldırılar gerçekleştirin.

Adım 9: Wallarm Node'a Trafik Gönderimini Yapılandırın

Kullanılan dağıtım yaklaşımına bağlı olarak, aşağıdaki ayarları yapın:

Yük dengeleyicinizin hedeflerini, trafiği Wallarm instance'ına yönlendirecek şekilde güncelleyin. Detaylar için lütfen yük dengeleyici dokümantasyonuna bakın.

Trafiğin yeni node'a tamamen yönlendirilmesinden önce, kısmen yönlendirilmesi ve yeni node'un beklendiği gibi davrandığının kontrol edilmesi önerilir.

Web veya proxy sunucunuzun (örn. NGINX, Envoy) gelen trafiği Wallarm node'una ayna yoluyla yönlendirecek şekilde yapılandırın. Yapılandırma detayları için web veya proxy sunucusu dokümantasyonuna bakmanız önerilir.

[web-server-mirroring-examples] içindeki bağlantıda, en popüler web ve proxy sunucuları (NGINX, Traefik, Envoy) için örnek yapılandırmayı bulabilirsiniz.

Adım 10: Eski Node'u Kaldırın

  1. Wallarm Console → Nodes bölümünde node'unuzu seçip Delete'e tıklayarak eski node'u silin.

  2. İşlemi onaylayın.

    Node Cloud'dan silindiğinde, uygulamalarınıza gelen taleplerin filtrelenmesi duracaktır. Filtreleme node'unun silinmesi geri alınamaz. Node, node listesinden kalıcı olarak silinecektir.

  3. Eski node içeren makineyi silin veya sadece Wallarm node bileşenlerinden temizleyin:

    sudo apt remove wallarm-node nginx-module-wallarm
    
    sudo apt remove wallarm-node nginx-module-wallarm
    
    sudo yum remove wallarm-node nginx-module-wallarm
    
    sudo yum remove wallarm-node nginx-module-wallarm
    
    sudo yum remove wallarm-node nginx-module-wallarm
    

    ```