Lewati ke konten

RADIUS & Mikrotik

RADIUS adalah jembatan antara router Anda dan indoradius: router menanyakan “boleh nggak user ini online?” ke RADIUS, RADIUS menjawab dari data subscriber + paket Anda, lalu mengirim laporan pemakaian (accounting) balik. Halaman ini menyambungkan satu router Mikrotik dari nol.

  • Autentikasi PPPoE/Hotspot/VPN — username & password subscriber dicek ke indoradius, bukan ke database lokal router.
  • Otorisasi — RADIUS membalas dengan rate-limit (bandwidth profile paket), IP, dan profil PPP yang dipakai.
  • Accounting — sesi (start/stop/interim) dikirim balik supaya muncul di halaman Sessions + dipakai untuk usage/kuota.
  • Isolir — saat subscriber disuspend, RADIUS mengirim Disconnect (CoA, RFC 5176) untuk memutus sesi; re-auth berikutnya dijawab dengan profil isolir (bandwidth kecil + diarahkan ke landing page).

Langkah 1 — Pastikan router bisa menjangkau RADIUS

Section titled “Langkah 1 — Pastikan router bisa menjangkau RADIUS”

Router harus bisa mengirim paket UDP ke node radiusd indoradius dan menerima balasan CoA/Disconnect (UDP 3799) dari arah sebaliknya. Ada dua pola:

Cara paling umum untuk RT/RW Net: router dial tunnel ke VPN concentrator indoradius, lalu trafik RADIUS lewat tunnel itu. Buat kredensial di menu VPN pada app, buka Mikrotik VPN Client, dan tempel skrip yang di-generate. Bentuknya kira-kira:

# 1. Dial tunnel ke concentrator
/interface l2tp-client add name="vpn-<user>" connect-to=<concentrator> \
user="<user>" password="<password>" disabled=no
# 2. Route radiusd lewat tunnel (jalankan setelah tunnel up)
/ip route add dst-address=<radiusd-ip>/32 gateway="vpn-<user>" comment="ISP radiusd"

IP gateway RADIUS yang Anda pakai di langkah berikutnya = <radiusd-ip> (alamat radiusd di sisi tunnel). Skrip VPN itu sudah sekalian mendaftarkan radiusd sebagai RADIUS client + mengaktifkan /radius incoming — kalau Anda memakainya, sebagian Langkah 3 sudah otomatis.

Langkah 2 — Daftarkan NAS & ambil shared secret

Section titled “Langkah 2 — Daftarkan NAS & ambil shared secret”

Di app: NAS → Add NAS. Isi nama router, biarkan secret ter-generate (atau isi sendiri). Secret ini harus sama persis di app dan di router — inilah yang dipakai RADIUS untuk mempercayai router Anda.

Dari baris NAS, buka Mikrotik Bootstrap untuk mendapatkan skrip RouterOS lengkap (Langkah 3). Dialog menampilkan secret dalam plaintext hanya selama terbuka, lalu dihapus dari memori.

Skrip dari Mikrotik Bootstrap mengonfigurasi RADIUS client, PPP AAA, dan seluruh mesin isolir. Inti bagiannya:

# RADIUS server + CoA listener (3799)
/radius incoming set accept=yes port=3799
/radius add address=<radiusd-ip> secret="<secret>" \
service=ppp,hotspot,login timeout=3s comment="billing platform radius"
# PPP AAA: auth + accounting via RADIUS, interim tiap 5 menit
/ppp aaa set use-radius=yes accounting=yes interim-update=5m

Bagian sisanya membangun isolir (subscriber tersuspend):

  • /ip pool pool-isolir + /ppp profile isolir — profil bandwidth kecil yang dibalas RADIUS saat subscriber disuspend. Nama profil wajib isolir agar cocok dengan balasan RADIUS.
  • /ip proxy + /ip firewall nat — membelokkan HTTP/HTTPS subscriber isolir ke web-proxy lokal yang me-redirect ke landing page.
  • /ip firewall filter — mengunci subscriber isolir hanya boleh ke landing page + DNS, sisanya diblok.

Langkah 4 — Pastikan RADIUS membalas rate-limit yang benar

Section titled “Langkah 4 — Pastikan RADIUS membalas rate-limit yang benar”

RADIUS hanya bisa membalas profil/bandwidth kalau datanya ada. Pastikan:

  • Bandwidth Profile sudah dibuat dan dipakai oleh Package.
  • Subscriber memakai package tersebut.

Saat subscriber dial PPPoE, RADIUS membalas rate-limit dari bandwidth profile paketnya. Tidak perlu bikin profil PPP manual per-kecepatan di router — cukup profil isolir dari skrip bootstrap.

  1. Dial PPPoE dari sisi pelanggan dengan username/password subscriber.

  2. Di app buka Sessions — sesi aktif muncul begitu Access-Request diterima dan accounting Start masuk.

  3. Di router, cek sesi & log:

    /ppp active print
    /log print where topics~"radius"
  4. Uji isolir: suspend subscriber di app → sesi terputus (Disconnect), dan re-dial berikutnya masuk ke profil isolir (browser diarahkan ke landing page).

GejalaPenyebab umumSolusi
Semua auth time-outIP RADIUS salah / tunnel belum up / port diblokCek <radiusd-ip>, pastikan tunnel up, izinkan UDP 1812/1813
Access-Reject walau user benarShared secret beda antara app & routerSamakan secret persis (Langkah 2)
Auth & accounting OK, tapi isolir tidak memutusRouter menolak CoA dari sumber tak dikenalPastikan IP sumber CoA terdaftar sebagai RADIUS client di router; pada deploy terpisah, IP node yang mengirim CoA harus dikenal router
Isolir memutus tapi tidak ke landing pageNama profil ≠ isolir, atau web-proxy/NAT tidak terpasangPastikan /ppp profile isolir ada + bagian proxy/firewall dari skrip ter-paste
Rate-limit tidak sesuai paketBandwidth profile belum nempel ke package/subscriberCek Package → Bandwidth Profile (Langkah 4)