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.
Apa yang dilakukan RADIUS di sini
Section titled “Apa yang dilakukan RADIUS di sini”- 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.
Kalau router punya IP publik dan boleh bicara langsung ke radiusd, operator mendaftarkan IP publik router itu sebagai client tepercaya di sisi platform. IP gateway RADIUS = alamat publik radiusd. Tidak perlu tunnel, tapi pastikan firewall di kedua sisi mengizinkan UDP 1812/1813 (auth/acct) dan UDP 3799 (CoA).
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.
Langkah 3 — Tempel skrip bootstrap
Section titled “Langkah 3 — Tempel skrip bootstrap”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=5mBagian sisanya membangun isolir (subscriber tersuspend):
/ip pool pool-isolir+/ppp profile isolir— profil bandwidth kecil yang dibalas RADIUS saat subscriber disuspend. Nama profil wajibisoliragar 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.
Verifikasi
Section titled “Verifikasi”-
Dial PPPoE dari sisi pelanggan dengan username/password subscriber.
-
Di app buka Sessions — sesi aktif muncul begitu Access-Request diterima dan accounting Start masuk.
-
Di router, cek sesi & log:
/ppp active print/log print where topics~"radius" -
Uji isolir: suspend subscriber di app → sesi terputus (Disconnect), dan re-dial berikutnya masuk ke profil
isolir(browser diarahkan ke landing page).
Troubleshooting
Section titled “Troubleshooting”| Gejala | Penyebab umum | Solusi |
|---|---|---|
| Semua auth time-out | IP RADIUS salah / tunnel belum up / port diblok | Cek <radiusd-ip>, pastikan tunnel up, izinkan UDP 1812/1813 |
Access-Reject walau user benar | Shared secret beda antara app & router | Samakan secret persis (Langkah 2) |
| Auth & accounting OK, tapi isolir tidak memutus | Router menolak CoA dari sumber tak dikenal | Pastikan 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 page | Nama profil ≠ isolir, atau web-proxy/NAT tidak terpasang | Pastikan /ppp profile isolir ada + bagian proxy/firewall dari skrip ter-paste |
| Rate-limit tidak sesuai paket | Bandwidth profile belum nempel ke package/subscriber | Cek Package → Bandwidth Profile (Langkah 4) |