Belajar Wazuh - Enkripsi, Keys, dan Secure Agent Communication
Episode 16 of 23

Belajar Wazuh - Enkripsi, Keys, dan Secure Agent Communication

Episode ini membahas enkripsi komunikasi agent dengan manager. Kita memahami mTLS dengan sertifikat X.509, perbedaan enrollment otomatis dan manual, protokol UDP versus TCP, peran header dan shared key, serta alasan jangan mengekspos manager ke internet tanpa hardening.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 15, kita mengamankan API dan dashboard. Sekarang kita membahas jalur yang paling banyak menghubungkan komponen: komunikasi antara agent dan manager. Setiap host yang kita pantau berbicara dengan manager secara terus menerus, dan jalur inilah yang paling sering diremehkan.

Bayangkan jika komunikasi agent tidak terenkripsi. Siapa pun yang bisa menyadap jaringan bisa membaca event keamanan kita, memodifikasi data, atau bahkan menyamar sebagai agent. Semua kerja keras mendeteksi ancaman menjadi sia-sia.

Di episode 16 ini, kita akan membahas cara Wazuh mengamankan jalur ini: mTLS dengan sertifikat X.509, enrollment otomatis dan manual, protokol UDP versus TCP, peran header dan shared key, serta alasan jangan pernah mengekspos manager ke internet tanpa hardening.

Arsitektur Komunikasi Agent-Manager

Sebelum masuk ke detail teknis, kita pahami dulu alur komunikasinya. Agent terhubung ke manager lewat dua port:

  • Port 1514: transport event dan log biasa.
  • Port 1515: registrasi dan enrollment agent baru.

Keduanya dilayani oleh manager. Pada Wazuh 4.x, keamanan bertumpu pada sertifikat X.509. Setiap agent punya sertifikat yang diterbitkan oleh CA manager, sehingga kedua belah pihak bisa saling memverifikasi identitas.

mTLS dan Sertifikat X.509

Komunikasi agent-manager memakai mutual TLS. Artinya bukan hanya agent yang memverifikasi manager, tapi manager juga memverifikasi agent. Ini mencegah serangan di mana penyerang menyamar sebagai manager untuk mencuri event.

Rantai sertifikatnya sederhana:

  • Manager memiliki CA root yang menerbitkan semua sertifikat.
  • Setiap agent mendapat sertifikat client yang ditandatangani CA tersebut.
  • Indexer juga punya CA sendiri, karena Filebeat dan dashboard berbicara dengan indexer memakai mTLS.

Dengan model ini, satu sertifikat yang bocor hanya memengaruhi agent terkait, bukan seluruh infrastructure.

Enrollment Otomatis dengan Flag -i

Cara paling umum menambahkan agent adalah enrollment otomatis. Saat agent pertama kali dijalankan, ia menghubungi port 1515 dan meminta sertifikat. Manager menjawab dan langsung menerbitkan sertifikat untuk agent tersebut.

Pada instalasi all-in-one, enrollment otomatis sudah aktif secara default. Perintah install yang ditampilkan dashboard tinggal dijalankan di host target.

Install dan enroll agent otomatis
WAZUH_MANAGER='10.0.1.11' \
WAZUH_AGENT_NAME='web-server-01' \
  curl -s https://10.0.1.11:443/wazuh-agent.sh | bash

Setelah itu, daemon agent melakukan handshake dengan manager menggunakan flag -i, yang memicu auto-enrollment.

Enrollment manual memakai flag -i
/var/ossec/bin/agent-auth -m 10.0.1.11 -A web-server-01 -i

::: code-group

Enrollment otomatis nyaman, tapi ada satu syarat penting: port 1515 harus bisa diakses agent. Di lingkungan yang tertutup, pendekatan ini sering diganti dengan enrollment manual.

Enrollment Manual dengan Key

Enrollment manual cocok untuk lingkungan dengan kebijakan keamanan ketat. Alih-alih membuka port 1515 ke semua agent, kita menerbitkan key di sisi manager, lalu memasangnya di agent secara manual.

Di Wazuh versi lama, ini dilakukan lewat manage_agents. Di Wazuh 4.x, alur manualnya menggunakan API: kita membuat key enrollment sementara, mengirimkannya ke agent, lalu menonaktifkannya setelah terpakai.

Membuat key enrollment via API
{
  "name": "web-server-01",
  "ip": "any"
}

Key yang dihasilkan hanya berlaku sekali. Setelah agent berhasil terdaftar, key otomatis gugur. Ini mencegah penyalahgunaan key yang sudah dipakai.

Info

Enrollment otomatis dan manual sama-sama menghasilkan sertifikat X.509 untuk agent. Perbedaannya ada di proses distribusi kepercayaan, bukan di mekanisme enkripsi yang dipakai setelah terdaftar.

Protokol Transport: UDP versus TCP

Event agent dikirim lewat port 1514. Pertanyaannya, pakai UDP atau TCP? Keduanya bisa, dan pilihannya memengaruhi keandalan.

  • UDP: lebih ringan dan cepat, cocok untuk event volume sangat tinggi, tapi paket bisa hilang tanpa jejak.
  • TCP: lebih andal karena ada pengakuan pengiriman, cocok untuk keamanan data yang tidak boleh hilang.

Default Wazuh memakai UDP. Untuk environment yang mengutamakan integritas, banyak yang beralih ke TCP. Konfigurasi dilakukan di sisi manager pada bagian <remote>.

Linuxossec.conf bagian remote TCP
<remote>
  <connection>secure</connection>
  <port>1514</port>
  <protocol>tcp</protocol>
</remote>

Perlu diingat, nilai <connection> harus konsisten antara manager dan agent. Jika manager memakai secure dengan protocol tcp, agent dikonfigurasi di file ossec.conf masing-masing.

Linuxossec.conf agent memakai TCP
<client>
  <server>
    <address>10.0.1.11</address>
    <port>1514</port>
    <protocol>tcp</protocol>
  </server>
</client>

::: code-group

Header dan Shared Key

Setiap event yang dikirim agent berisi header berformat tetap. Header ini membawa metadata seperti agent ID dan nama, dan menjadi bagian penting dari integritas komunikasi.

Selain sertifikat, komunikasi legacy Wazuh juga bisa memakai shared key. Shared key adalah secret simetris yang dibagi antara manager dan agent. Pada arsitektur 4.x, peran shared key sebagian besar sudah digantikan sertifikat X.509, tapi pemahaman konsepnya tetap berguna, terutama saat membaca dokumentasi lama atau menangani cluster.

Kunci terpenting yang harus diingat: shared key tidak boleh ditransmisikan lewat jaringan tanpa enkripsi. Begitu key berpindah, seluruh komunikasi bisa disandera.

Jangan Expose Manager ke Internet

Manager adalah target paling menarik di seluruh stack. Ia memegang semua event, sertifikat, dan kontrol ke agent. Mengeksposnya langsung ke internet tanpa hardening adalah undangan untuk diserang.

Prinsip yang kami pegang:

  • Jangan buka port 1514 dan 1515 ke internet publik.
  • Agent jarak jauh sebaiknya terhubung lewat VPN atau WireGuard.
  • Batasi akses port 55000 API hanya ke alamat yang dikenal.
  • Dashboard sebaiknya berada di balik reverse proxy dengan TLS dan MFA.
  • Gunakan firewall untuk membatasi sumber yang bisa menghubungi tiap port.

Port yang aman untuk dibuka adalah 443 untuk enrollment script, dan itu pun sebaiknya dibatasi. Untuk agent yang tersebar di lokasi berbeda, VPN lebih baik daripada membuka manager langsung.

Memverifikasi Komunikasi Aman

Setelah semua konfigurasi, kita perlu memastikan komunikasi benar-benar berjalan dengan mTLS. Cara paling cepat adalah melihat detail koneksi di sisi manager.

Melihat koneksi agent dari manager
ss -tn | grep 1514

Output akan menunjukkan koneksi TCP aktif dari agent ke manager. Untuk memeriksa sertifikat yang dipakai, cek berkas sertifikat di direktori agent.

Cek sertifikat agent
openssl x509 -in /var/ossec/etc/sslmanager.cert -noout -subject

::: code-group

Jika subject sertifikat sesuai nama agent, komunikasi sudah memakai identitas yang benar.

Penutup

Di episode 16 ini, kita membahas enkripsi dan keamanan komunikasi agent-manager. Kita memahami mTLS dengan sertifikat X.509, perbedaan enrollment otomatis dengan flag -i dan enrollment manual dengan key, protokol UDP versus TCP, peran header dan shared key, serta pentingnya tidak mengekspos manager ke internet.

Inti yang harus dibawa pulang:

  • Agent-manager memakai mTLS dengan sertifikat yang diterbitkan CA manager.
  • Enrollment otomatis memakai port 1515 dan flag -i.
  • Enrollment manual cocok untuk lingkungan dengan kebijakan ketat.
  • TCP lebih andal daripada UDP untuk event yang tidak boleh hilang.
  • Header dan shared key adalah konsep legacy yang tetap relevan dibaca.
  • Manager tidak boleh dibuka ke internet tanpa VPN dan firewall.

Komunikasi sudah aman, sekarang giliran kecerdasannya. Di episode 17, kita akan membahas custom rules dan advanced detection: membuat rule untuk use case spesifik, variabel, alert overrides, korelasi lintas agent, sampai enrichment GeoIP dan threat intel. Sampai jumpa!

Belajar Wazuh - Enkripsi, Keys, dan Secure Agent Communication | Belajar Wazuh