# 🛡️ Implementasi DDoS Mitigation dengan Wanguard Flowspec + Filter (Tanpa RTBH)

[![image.png](https://www.32inside.com/uploads/images/gallery/2026-04/scaled-1680-/heoimage.png)](https://www.32inside.com/uploads/images/gallery/2026-04/heoimage.png)

##### **Latar Belakang**

DDoS bisa menyerang langsung IP publik tenant. Solusi klasik seperti **RTBH (Remote Triggered Black Hole)** sering digunakan, tapi punya kekurangan utama: **memutus total akses ke IP korban**.

Solusi yang lebih presisi dan modern adalah menggabungkan:

- **Wanguard Sensor** untuk deteksi serangan
- **Wanguard Filter** sebagai scrubber
- **BGP Flowspec** untuk filtering trafik jahat
- 🚫 Tanpa perlu RTBH (**No blackhole**)

---

##### **Tujuan Arsitektur**

- Melindungi tenant dari DDoS tanpa mematikan IP korban
- Menyaring trafik jahat di edge (Nokia router) sebelum masuk ke internal jaringan
- Membersihkan trafik yang lebih kompleks melalui Wanguard Filter

---

##### **Komponen yang Digunakan**

<div class="_tableContainer_80l1q_1" id="bkmrk-komponen-peran-wangu"><div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1475" data-start="1026"><thead data-end="1046" data-start="1026"><tr data-end="1046" data-start="1026"><th data-col-size="sm" data-end="1037" data-start="1026">Komponen</th><th data-col-size="md" data-end="1046" data-start="1037">Peran</th></tr></thead><tbody data-end="1475" data-start="1067"><tr data-end="1144" data-start="1067"><td data-col-size="sm" data-end="1092" data-start="1067">**Wanguard Sensor**</td><td data-col-size="md" data-end="1144" data-start="1092">Mendeteksi pola DDoS (NetFlow/sFlow/port mirror)</td></tr><tr data-end="1232" data-start="1145"><td data-col-size="sm" data-end="1170" data-start="1145">**Wanguard Filter**</td><td data-col-size="md" data-end="1232" data-start="1170">Menyaring trafik berdasarkan signature (packet/flow-based)</td></tr><tr data-end="1308" data-start="1233"><td data-col-size="sm" data-end="1261" data-start="1233">**Router Nokia SR OS**</td><td data-col-size="md" data-end="1308" data-start="1261">Menjadi edge router, menerima rule Flowspec</td></tr><tr data-end="1386" data-start="1309"><td data-col-size="sm" data-end="1339" data-start="1309">**BGP Session Flowspec**</td><td data-col-size="md" data-end="1386" data-start="1339">Kanal komunikasi antara Wanguard dan router</td></tr><tr data-end="1475" data-start="1387"><td data-col-size="sm" data-end="1428" data-start="1387">**Redirect to Scrubber (opsional)**</td><td data-col-size="md" data-end="1475" data-start="1428">Untuk serangan layer 7 atau spoofed traffic</td></tr></tbody></table>

<button aria-label="Copy Table" class="hover:bg-token-bg-tertiary text-token-text-secondary my-1 rounded-sm p-1 transition-opacity group-[:not(:hover):not(:focus-within)]:pointer-events-none group-[:not(:hover):not(:focus-within)]:opacity-0"></button></div></div>---

##### **Arsitektur dan Flow**

[![image.png](https://blog.32inside.com/uploads/images/gallery/2025-08/scaled-1680-/Vnpimage.png)](https://blog.32inside.com/uploads/images/gallery/2025-08/Vnpimage.png)

[https://www.andrisoft.com/software/wanguard/ddos-mitigation-protection](https://www.andrisoft.com/software/wanguard/ddos-mitigation-protection)

```ini
                          +------------------+
                          |     INTERNET     |
                          +--------+---------+
                                   |
                            Incoming Traffic
                                   |
                                   v
                          +------------------+
                          |  EDGE ROUTER     |
                          |  (Nokia SR OS)   |
                          +---+----------+---+
                              |          |
                              |          | Mirror/SPAN/NetFlow
                              |          v
                   Clean or Malicious   +----------------------+
                              |         |   WANGUARD SENSOR    |
                              |         | (Passive Monitoring) |
                              |         +----------+-----------+
                              |                    |
               +--------------+                    +--------------------+
               |                                   | Detects DDoS       |
               |                                   | Sends BGP Flowspec |
               |                                   v                    |
               |                        +-------------------------+     |
               |                        |   BGP FLOWSPEC RULES    |     |
               |                        +-------------------------+     |
               |                                   |                    |
               |                     Matches attack traffic?            |
               |                                   |                    |
         +-----v-----+                        +----v-----+         +----v-----+
         | CLEAN     | No → DROP attack       | REDIRECT |  →→→→→  | FILTER   |
         | TRAFFIC   | via Flowspec           | to SCRUB |         |(scrubber)|
         +-----------+                        +----------+         +----+-----+
               | Yes                                                    |
               | ←←←←←←←←←←←←←←←←← CLEAN TRAFFIC ONLY                   |
               |                                                        |
               v                                                        v
            +---------------------------------------------------------------+
            |                    PROTECTED TENANT                           |
            +---------------------------------------------------------------+

```

#### **Penjelasan Jalur**

- **Normal/Clean Traffic:**
    - Masuk dari Internet ke Edge Router
    - Tidak terdeteksi sebagai DDoS
    - Tidak cocok dengan rule Flowspec → langsung diteruskan ke tenant
- **DDoS Volume Attack (Sederhana):**
    - Terdeteksi oleh Sensor (via mirror)
    - Sensor mengirim Flowspec ke router
    - Router drop traffic yang cocok (berdasarkan dst IP, port, proto, dst prefix, dsb)
- **DDoS Kompleks (Spoofed/Layer 7)**: 
    - Sensor tidak cukup untuk handle via Flowspec
    - Sensor trigger **redirect to scrubber** (Wanguard Filter)
    - Filter menyaring secara granular, hanya teruskan **clean traffic**
    - Tenant tetap dapat akses normal

---

##### **Tahapan Implementasi**

##### **1. Persiapkan Infrastruktur Dasar**

<div class="_tableContainer_80l1q_1" id="bkmrk-komponen-deskripsi-r"><div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="787" data-start="420"><thead data-end="457" data-start="420"><tr data-end="457" data-start="420"><th data-col-size="sm" data-end="444" data-start="420">Komponen</th><th data-col-size="md" data-end="457" data-start="444">Deskripsi</th></tr></thead><tbody data-end="787" data-start="495"><tr data-end="573" data-start="495"><td data-col-size="sm" data-end="519" data-start="495">Router (Nokia SR OS)</td><td data-col-size="md" data-end="573" data-start="519">Pastikan support NetFlow/sFlow/SPAN + BGP Flowspec</td></tr><tr data-end="644" data-start="574"><td data-col-size="sm" data-end="598" data-start="574">Server Wanguard Sensor</td><td data-col-size="md" data-end="644" data-start="598">Pasang di lokasi yang menerima mirror flow</td></tr><tr data-end="716" data-start="645"><td data-col-size="sm" data-end="669" data-start="645">Server Wanguard Filter</td><td data-col-size="md" data-end="716" data-start="669">Opsional, dipasang jika diperlukan scrubber</td></tr><tr data-end="787" data-start="717"><td data-col-size="sm" data-end="741" data-start="717">BGP Session Internal</td><td data-col-size="md" data-end="787" data-start="741">Untuk koneksi Sensor → Router via Flowspec</td></tr></tbody></table>

<button aria-label="Copy Table" class="hover:bg-token-bg-tertiary text-token-text-secondary my-1 rounded-sm p-1 transition-opacity group-[:not(:hover):not(:focus-within)]:pointer-events-none group-[:not(:hover):not(:focus-within)]:opacity-0"></button></div></div>---

##### **2. Konfigurasi Source Traffic (NetFlow atau Mirror)**

1. Masuk ke menu: **Sensors &gt; Sources**
2. Klik **“Add New Source”**
3. Pilih **NetFlow v5/v9/sFlow** atau **Interface (mirror)**
4. Contoh NetFlow:
    
    
    - Name: `Router1`
    - Type: `NetFlow v9`
    - Port: `2055`
    - Interface IP: `0.0.0.0` *(bind ke semua interface)*
5. Klik **Save**

##### **3. Aktifkan Sensor**

1. Masuk ke: **Sensors &gt; Sensors**
2. Klik **“Add New Sensor”**
3. Isi:
    
    
    - Name: `EdgeSensor`
    - Source: pilih `Router1` (yang tadi kamu buat)
    - Role: `Detection only`
    - Threshold (example):
        
        
        - PPS threshold: `50000`
        - BPS threshold: `200000000` (200 Mbps)
4. Klik **Save**

> Sensor ini akan mulai analisis flow/mirror secara pasif.

##### **4. Set BGP Flowspec Connection**

1. Masuk ke: **Settings &gt; BGP Configuration**
2. Klik **“Add New Peer”**
3. Isi:
    
    
    - Type: `Flowspec`
    - Local IP: `10.0.0.10` (IP dari server sensor)
    - Remote IP: `10.0.0.1` (edge router)
    - AS Number: sesuai BGP internal (misal: 65001)
    - Enable: ✅
4. Klik **Save**

> Pastikan koneksi BGP Flowspec ini established (lihat status).

##### **5. Buat Response Rule (Flowspec Injection)**

1. Masuk ke: **Sensors &gt; Responses**
2. Klik **“Add New Response”**
3. Isi:
    
    
    - Name: `Flowspec-Drop`
    - Action: `Inject BGP Flowspec`
    - Match:
        
        
        - TCP SYN flood → dst port = 2211 (contoh)
        - UDP flood → dst port = 53 (contoh)
        - Bisa match berdasarkan pps/bps
    - Behavior: `discard`
4. Klik **Save**

> Wanguard akan otomatis mengirim Flowspec rule saat traffic match attack pattern.

##### **6. Konfigurasi Wanguard Filter (Scrubber)**

Kalau kamu pakai Wanguard Filter juga, maka:

1. Masuk ke **Filters &gt; Filters**
2. Klik **“Add New Filter”**
3. Isi:
    
    
    - Mode: `Bridge` atau `Redirect`
    - Input Interface: `eth0`
    - Output Interface: `eth1`
        
        <table class="w-fit min-w-(--thread-content-width)" data-end="848" data-start="257" style="width: 100.053%;"><thead data-end="399" data-start="257"><tr data-end="399" data-start="257"><th data-col-size="sm" data-end="270" data-start="257" style="width: 12.3478%;">Mode</th><th data-col-size="md" data-end="321" data-start="270" style="width: 40.1903%;">Kapan digunakan</th><th data-col-size="md" data-end="399" data-start="321" style="width: 47.3793%;">Penjelasan</th></tr></thead><tbody data-end="848" data-start="543"><tr data-end="692" data-start="543"><td data-col-size="sm" data-end="556" data-start="543" style="width: 12.3478%;">**Bridge**</td><td data-col-size="md" data-end="615" data-start="556" style="width: 40.1903%;">Jika Wanguard Filter berada **inline** (di tengah jalur)</td><td data-col-size="md" data-end="692" data-start="615" style="width: 47.3793%;">Traffic melewati eth0 → difilter → keluar lewat eth1</td></tr><tr data-end="848" data-start="693"><td data-col-size="sm" data-end="708" data-start="693" style="width: 12.3478%;">**Redirect**</td><td data-col-size="md" data-end="771" data-start="708" style="width: 40.1903%;">Jika router **mengarahkan** (Flowspec redirect) ke IP filter</td><td data-col-size="md" data-end="848" data-start="771" style="width: 47.3793%;">Traffic masuk ke IP filter lalu dikembalikan setelah dibersihkan</td></tr></tbody></table>
        
        **Pilih yang mana?**
        
        
        - Kalau kamu **taruh Filter langsung di jalur trafik** (di antara router dan infra/tenant): pakai **Bridge**
        - Kalau kamu **gunakan Flowspec redirect**, router akan kirim traffic ke IP filter: pakai **Redirect**
        
        <table class="w-fit min-w-(--thread-content-width)" data-end="1485" data-start="1192"><thead data-end="1254" data-start="1192"><tr data-end="1254" data-start="1192"><th data-col-size="sm" data-end="1204" data-start="1192">Interface</th><th data-col-size="sm" data-end="1237" data-start="1204">Fungsi</th><th data-col-size="sm" data-end="1254" data-start="1237">Tersambung ke</th></tr></thead><tbody data-end="1485" data-start="1332"><tr data-end="1408" data-start="1332"><td data-col-size="sm" data-end="1344" data-start="1332">`eth0`</td><td data-col-size="sm" data-end="1377" data-start="1344">Input: menerima trafik mentah</td><td data-col-size="sm" data-end="1408" data-start="1377">Dari router / port mirror</td></tr><tr data-end="1485" data-start="1409"><td data-col-size="sm" data-end="1421" data-start="1409">`eth1`</td><td data-col-size="sm" data-end="1454" data-start="1421">Output: kirim trafik bersih</td><td data-col-size="sm" data-end="1485" data-start="1454">Ke tenant / LAN clean zone</td></tr></tbody></table>
4. Atur rule filtering:
    
    
    - TCP SYN threshold
    - Drop spoofed IP
    - Allow specific ports/IPs
        
        ---
        
        **TCP SYN Threshold**Digunakan untuk mendeteksi TCP SYN flood
        
        
        - Contoh: `1000 pps`
            
            > Artinya, kalau ke satu IP/port ada &gt;1000 TCP SYN per detik, dianggap attack
        
        **Rekomendasi:**
        
        
        - Di bawah 500 → false positive
        - Di atas 2000 → bisa telat mendeteksi
        
        Saran: **1000–3000 pps** tergantung kebutuhan
        
        ---
        
        **Drop Spoofed IP**Fungsi: otomatis drop traffic dari IP **tidak valid** atau **spoofed**
        
        Yang dideteksi dan di-drop:
        
        
        - Private IP dari Internet (misal `192.168.x.x`)
        - IP loopback, multicast, reserved
        - TTL aneh (TTL &lt;10)
        - IP yang tidak sesuai routing table
        
        > Aktifkan opsi ini untuk mengurangi noise attack yang tidak valid
        
        ---
        
        **Allow Specific Ports/IPs**Fungsi: memperbolehkan traffic tertentu tetap lewat meskipun sedang ada mitigasi
        
        Contoh use case:
        
        
        - Kamu ingin tetap allow port 443 (HTTPS) meskipun sedang diserang SYN port 2211
        - Atau ingin tetap allow IP internal tertentu (misal IP CDN)
    
    ---
    
    
    - <table class="w-fit min-w-(--thread-content-width)" data-end="3603" data-start="3011"><thead data-end="3082" data-start="3011"><tr data-end="3082" data-start="3011"><th data-col-size="sm" data-end="3034" data-start="3011">Setting</th><th data-col-size="md" data-end="3082" data-start="3034">Value yang disarankan</th></tr></thead><tbody data-end="3603" data-start="3155"><tr data-end="3242" data-start="3155"><td data-col-size="sm" data-end="3178" data-start="3155">Mode</td><td data-col-size="md" data-end="3242" data-start="3178">`Redirect` *(jika pakai Flowspec)* atau `Bridge` jika inline</td></tr><tr data-end="3313" data-start="3243"><td data-col-size="sm" data-end="3266" data-start="3243">Input Interface</td><td data-col-size="md" data-end="3313" data-start="3266">`eth0` (dari router/SPAN/Flowspec)</td></tr><tr data-end="3384" data-start="3314"><td data-col-size="sm" data-end="3337" data-start="3314">Output Interface</td><td data-col-size="md" data-end="3384" data-start="3337">`eth1` (ke tenant atau clean segment)</td></tr><tr data-end="3455" data-start="3385"><td data-col-size="sm" data-end="3408" data-start="3385">TCP SYN threshold</td><td data-col-size="md" data-end="3455" data-start="3408">`1000–3000 pps`</td></tr><tr data-end="3525" data-start="3456"><td data-col-size="sm" data-end="3479" data-start="3456">Drop Spoofed</td><td data-col-size="md" data-end="3525" data-start="3479">✅ Aktifkan</td></tr><tr data-end="3603" data-start="3526"><td data-col-size="sm" data-end="3549" data-start="3526">Allow ports/IP</td><td data-col-size="md" data-end="3603" data-start="3549">Tambahkan sesuai kebutuhan (port 443, IP tertentu)</td></tr></tbody></table>
5. Klik **Save &amp; Start Filter**

> Kamu bisa sambungkan sensor ke filter melalui Response type: **Redirect via BGP next-hop** jika router support redirect via Flowspec.

---

##### **7. Uji Coba dan Simulasi**

- Simulasikan SYN flood atau DNS flood
- Lihat apakah:
    
    
    - Sensor mendeteksi trafik
    - Flowspec muncul di router
    - Traffic jahat di-drop
    - Clean traffic tetap jalan

---

##### **8. Monitoring &amp; Logs**

- **Dashboard** → untuk serangan aktif
- **Logs &gt; Flowspec** → lihat rule yang di-inject
- **Sensors &gt; Attacks** → histori serangan
- **Filters &gt; Cleaned Packets** → statistik scrubber

---

##### **Hasil Akhir yang Diharapkan**

<div class="_tableContainer_80l1q_1" id="bkmrk-komponen-fungsi-sens"><div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3140" data-start="2845"><thead data-end="2866" data-start="2845"><tr data-end="2866" data-start="2845"><th data-col-size="sm" data-end="2856" data-start="2845">Komponen</th><th data-col-size="md" data-end="2866" data-start="2856">Fungsi</th></tr></thead><tbody data-end="3140" data-start="2889"><tr data-end="2941" data-start="2889"><td data-col-size="sm" data-end="2900" data-start="2889">Sensor</td><td data-col-size="md" data-end="2941" data-start="2900">Monitor trafik tanpa mengganggu jalur</td></tr><tr data-end="2998" data-start="2942"><td data-col-size="sm" data-end="2953" data-start="2942">Router</td><td data-col-size="md" data-end="2998" data-start="2953">Menerapkan Flowspec rules (drop/redirect)</td></tr><tr data-end="3074" data-start="2999"><td data-col-size="sm" data-end="3010" data-start="2999">Filter</td><td data-col-size="md" data-end="3074" data-start="3010">(Jika dipakai) Membersihkan trafik lalu meneruskan ke tenant</td></tr><tr data-end="3140" data-start="3075"><td data-col-size="sm" data-end="3086" data-start="3075">Tenant</td><td data-col-size="md" data-end="3140" data-start="3086">Tetap online, trafik jahat disaring sedini mungkin</td></tr></tbody></table>

</div></div>