Menyembunyikan IP Server dengan NGINX Proxy Manager + MikroTik Port Forwarding

Menyembunyikan IP Server dengan NGINX Proxy Manager + MikroTik Port Forwarding

Di artikel ini saya ingin membagikan bagaimana saya mengatur infrastruktur jaringan agar IP publik server tetap aman dan tidak langsung terlihat dari internet. Tujuannya sederhana: server tetap bisa diakses via domain, tapi IP-nya tetap tersembunyi dan lebih aman dari serangan langsung.

Kenapa Perlu Menyembunyikan IP Server?

Biasanya, kalau kita punya aplikasi atau website, kita langsung arahkan domain ke IP publik server, lalu buka port yang dibutuhkan (biasanya 80 dan 443). Tapi itu berbahaya, karena:

  • IP server bisa discan dan diserang bot

  • Serangan brute-force atau DDoS bisa langsung menghantam server kita

  • Kalau kita punya beberapa aplikasi di server berbeda, semuanya harus dibuka ke publik

Jadi, saya konfigurasi sistem seperti ini:

Skema Jaringan yang Saya Gunakan

Cloudflare (DNS + Proxy)
        ↓
NGINX Proxy Manager (di server A, IP publik A)
        ↓
MikroTik (IP publik B)
        ↓
Server lokal (IP LAN, misalnya 192.168.1.10:8081)

Penjelasan Singkat Tiap Komponen

  • Cloudflare: Mengarahkan domain ke IP server A (tempat NGINX Proxy Manager), sekaligus memberi perlindungan DDoS dan SSL gratis.

  • NGINX Proxy Manager (NPM): Bertugas sebagai “gerbang” utama. Dia akan menerima semua permintaan dari pengguna, lalu meneruskan ke IP publik MikroTik.

  • MikroTik: Melakukan port forwarding dari IP publik ke server lokal di jaringan.

  • Server Lokal: Menyediakan aplikasi (misalnya website, API) di port tertentu.

Konfigurasi Langkah per Langkah

1. Cloudflare DNS

Buat subdomain di Cloudflare, misalnya:

app1.domain.com → arahkan ke IP publik NGINX Proxy Manager (Server A)
Aktifkan proxy (☁️ orange)

2. NGINX Proxy Manager

Masuk ke dashboard NPM → pilih Proxy Hosts → tambahkan host baru:

  • Domain Names: app1.domain.com

  • Forward Hostname / IP: IP publik MikroTik (misalnya 203.0.113.1)

  • Forward Port: 10081 (port yang nanti akan diforward ke server lokal)

  • Aktifkan SSL (Let’s Encrypt)

Artinya: NPM akan menerima permintaan app1.domain.com, lalu kirim ke MikroTik port 10081.

3. MikroTik Port Forwarding

Kamu harus pastikan MikroTik mendengar pada port yang dipakai NPM, lalu teruskan ke server lokal.

Misalnya:

  • IP MikroTik: 203.0.113.1

  • Server lokal: 192.168.1.10

  • Port aplikasi lokal: 8081

  • Port publik yang dibuka: 10081

/ip firewall nat
add chain=dstnat protocol=tcp dst-address=203.0.113.1 dst-port=10081 \
    action=dst-nat to-addresses=192.168.1.10 to-ports=8081 \
    comment="Forward NPM to Server App 1"

4. Firewall MikroTik (Amankan Akses)

Pastikan hanya NGINX Proxy Manager yang bisa akses port ini.

/ip firewall filter
add chain=input protocol=tcp dst-port=10081 src-address=<IP NPM> action=accept \
    comment="Allow NPM to access port"
/ip firewall filter
add chain=input protocol=tcp dst-port=10081 action=drop \
    comment="Block other IPs"

Gantilah <IP NPM> dengan IP publik server tempat NGINX Proxy Manager berada.

Kelebihan Konfigurasi Ini

✅ IP server lokal tetap tersembunyi
✅ Cukup satu IP publik untuk banyak aplikasi
✅ SSL otomatis lewat NGINX Proxy Manager
✅ Proteksi DDoS dan bot dari Cloudflare
✅ Mudah dikelola karena semua diatur lewat dashboard NPM

Kekurangan

❌ Agak rumit saat konfigurasi awal
❌ Kalau NGINX Proxy Manager down, semua akses juga ikut down
❌ Butuh manajemen port yang rapi di MikroTik agar tidak tabrakan
❌ Kalau salah konfigurasi firewall, bisa bikin koneksi gagal

Konfigurasi ini saya pilih karena saya ingin menjaga server tetap aman dan tertutup dari akses langsung luar. Semua trafik hanya masuk lewat satu gerbang, yaitu NGINX Proxy Manager. Sisanya hanya bisa diakses lewat port yang memang saya buka dan izinkan saja.

Kalau kamu punya beberapa server, atau ingin mengelola banyak aplikasi dengan satu domain dan SSL, sistem ini sangat efektif. Semoga membantu!

One thought on “Menyembunyikan IP Server dengan NGINX Proxy Manager + MikroTik Port Forwarding

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top