Belajar RabbitMQ - Network Configuration & Firewall
Episode 18 of 33

Belajar RabbitMQ - Network Configuration & Firewall

RabbitMQ berkomunikasi lewat banyak port, dan salah satu port terbuka bisa menjadi pintu masuk. Di episode ini kalian memahami seluruh port yang dipakai RabbitMQ, mengatur bind address dan interface, memilih IPv4 vs IPv6, serta menyusun aturan firewall untuk single node dan cluster di cloud.

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

Pendahuluan

RabbitMQ adalah makhluk jaringan: setiap fitur yang pernah kita bahas — AMQP, Management UI, clustering, metrik Prometheus, plugin MQTT dan STOMP — semuanya berjalan di atas port tertentu. Jika port tidak dikonfigurasi dan dilindungi dengan benar, dua masalah mengintai: layanan tidak bisa diakses, atau yang lebih buruk, broker bisa diakses orang yang tidak berhak.

Episode ini memetakan seluruh port yang dipakai RabbitMQ, lalu membahas bind address — menentukan interface mana yang melayani koneksi mana. Terakhir, kita menyusun aturan firewall untuk single node dan cluster, termasuk security group di cloud dan pertimbangan VPC peering.

Tujuan akhirnya sederhana: hanya jaringan yang tepat yang bisa menjangkau setiap port, dan tidak ada port yang terbuka lebih dari yang dibutuhkan.

Port Configuration

Port Utama RabbitMQ

Daftar port yang paling sering dipakai:

PortFungsi
5672AMQP (plain) dan AMQP 0-9-1
5671AMQP over TLS
15672Management UI / HTTP API
15671Management UI over TLS
25672Distribusi antar node cluster
4369epmd (Erlang port mapper daemon)
15692Metrik Prometheus

Port-plugin: MQTT di 1883 (dan 8883 untuk TLS), STOMP di 61613, Web-STOMP di 15674, serta MQTT over WebSockets di 15675.

Verifikasi Port yang Terbuka

Periksa port yang sedang didengarkan:

Cek listening port
ss -tlnp | grep -E "5672|15672|25672|4369"

Perintah ss -tlnp menampilkan port TCP yang aktif. Jika ada port yang tidak diharapkan, matikan plugin atau ubah konfigurasi listener-nya.

Network Topology

Bind Address dan Interface

Secara default RabbitMQ mendengarkan di semua interface. Batasi dengan listeners.tcp.ip untuk hanya melayani interface tertentu:

Bind ke interface internal saja
listeners.tcp.default = 5672
listeners.tcp.ip = 192.168.50.10
listeners.ssl.default = 5671
listeners.ssl.ip = 192.168.50.10
management.tcp.ip = 192.168.50.10
management.tcp.port = 15672

Dengan konfigurasi di atas, port 5672, 5671, dan 15672 hanya bisa diakses dari alamat 192.168.50.10 — bukan dari seluruh interface publik.

IPv4 vs IPv6 dan DNS

RabbitMQ mendukung IPv4 dan IPv6. Jika memakai hostname di koneksi client, pastikan DNS resolve ke alamat yang sesuai dengan bind address. Kesalahan umum: client memakai hostname yang resolve ke IPv6, sementara listener hanya di IPv4 (atau sebaliknya). Untuk debugging koneksi yang gagal, cek resolusi DNS:

Cek resolusi hostname
getent hosts rabbitmq.example.com

Perintah getent hosts menampilkan alamat yang di-resolve dari hostname — cocokkan dengan interface yang melayani port.

Firewall Rules

Aturan untuk Single Node

Untuk single node, aturan firewall idealnya membatasi akses per port:

  • Port 5672/5671 (AMQP): hanya dari subnet aplikasi.
  • Port 15672/15671 (Management): hanya dari jaringan operator atau VPN.
  • Port 15692 (Prometheus): hanya dari network Prometheus.
  • Port lain: tidak perlu terbuka ke publik.
Aturan firewall dengan ufw
sudo ufw allow from 10.0.1.0/24 to any port 5672
sudo ufw allow from 10.0.2.0/24 to any port 15672
sudo ufw allow from 10.0.3.0/24 to any port 15692

Aturan untuk Cluster

Cluster butuh port tambahan antar node: 25672 untuk komunikasi node, 4369 untuk epmd. Aturan yang benar: port ini hanya boleh diakses antar node cluster, bukan dari jaringan umum:

Izinkan port cluster antar node
sudo ufw allow from 10.0.0.0/16 to any port 25672
sudo ufw allow from 10.0.0.0/16 to any port 4369

epmd mencatat port node; pastikan semua node bisa menjangkau epmd node lain sebelum membentuk cluster (topik episode 19).

Security Group di Cloud dan VPC Peering

Di AWS/GCP, terjemahkan aturan di atas ke security group: buat group khusus RabbitMQ dengan inbound rule terbatas. Untuk komunikasi antar VPC, pakai VPC peering dan pastikan route table mengarahkan subnet broker ke subnet aplikasi. Jangan pernah membuka port 15672 ke 0.0.0.0/0 — ini undangan terbuka untuk semua orang di internet.

Warning

Port 4369 (epmd) sering terlupakan saat membuka firewall cluster, sehingga node tidak bisa saling menemukan. Jika formasi cluster gagal, selalu periksa port 4369 dan 25672 di kedua arah.

Penutup

Di episode 18 ini kalian sudah memetakan seluruh port RabbitMQ, mengatur bind address dan interface, mempertimbangkan IPv4 vs IPv6 dan DNS, serta menyusun aturan firewall untuk single node, cluster, dan environment cloud.

Inti yang harus dibawa pulang:

  • AMQP di 5672/5671; Management UI di 15672; Prometheus di 15692.
  • Cluster butuh port 25672 dan epmd 4369 antar node.
  • Bind address membatasi interface yang melayani koneksi.
  • Cocokkan resolusi DNS client dengan bind address.
  • Management UI dan Prometheus jangan dibuka ke jaringan publik.
  • Port cluster hanya boleh diakses antar node.
  • Security group cloud membatasi akses per subnet dan VPC peering.

Di episode 19 selanjutnya kita akan membangun RabbitMQ clustering — membentuk cluster multi node, mekanisme node discovery, pengamanan dengan Erlang cookie, penambahan dan penghapusan node, serta menangani network partition dengan mode pause_minority, autoheal, dan ignore. Ini langkah pertama menuju high availability!

Belajar RabbitMQ - Network Configuration & Firewall | Belajar RabbitMQ