Kembali

Konfigurasi dua RADIUS Server dalam satu MikroTik

Pengantar

MikroTik RouterOS sering dipakai sebagai gateway utama pada jaringan rumah, kantor kecil, ataupun layanan ISP. Salah satu fitur penting yang disediakan oleh router ini adalah kemampuan untuk berkomunikasi dengan server RADIUS (Remote Authentication Dial In User Service). Server RADIUS berfungsi sebagai otentikasi, otorisasi, dan akuntansi (AAA) bagi klien yang mencoba menghubungkan ke jaringan. Dalam banyak skenario, keandalan jaringan menuntut keberadaan lebih dari satu server RADIUS. Penyebaran server RADIUS dapat dilakukan untuk tujuan redundansi, beban, atau pemisahan fungsi (misal, satu server menanganai user internal sementara satu lagi menanganai guest). Implementasi dua server RADIUS pada satu MikroTik memerlukan pengaturan khusus, agar router dapat memilih server secara dinamis atau melakukan failover bila salah satu server down. Artikel ini akan membahas proses konfigurasi secara rinci, termasuk persiapan, langk-langkah pada MikroTik, pengujian, troubleshooting, serta contoh script lengkap yang dapat langsung di-copy ke router.

Persiapan Awal

Persyaratan Perangkat Keras

Untuk menjalankan dua server RADIUS secara bersamaan, router harus memiliki kapasitas memori dan CPU yang cukup. Rekomendasi minimal untuk router MikroTik dengan dua server RADIUS adalah model RouterBOARD 1016D, 2011, atau yang setara yang memiliki setidaknya 64 MB RAM dan 16 MB flash. Namun, bila jaringan yang akan diamankan cukup besar, model dengan 128 MB RAM or lebih dianjurkan. Selain itu, pastikan interface jaringan yang akan bertindak sebagai gateway telah dikonfigurasikan secara normal dan dapat mengakses jaringan internal serta internet.

Persyaratan Perangkat Lunak

MikroTik RouterOS terbaru (versi 6.xx atau 7.xx) didapatkan dari situs resmi MikroTik. Pastikan Anda memakai versi yang stabil dan mendukung fitur Scripting dan RADIUS karena beberapa perintah mungkin berubah. Selain itu, Anda juga perlu memiliki dua server RADIUS yang berjalan, misalnya FreeRADIUS (Linux), Microsoft NPS (Windows), atau RADIUS pada cloud provider. Pastikan kedua server dapat diakses oleh router melalui jaringan lokal dengan port 1812 (auth) dan 1813 (acct) terbuka.

Persiapan RADIUS Server

Setiap server RADIUS harus dikonfigurasi dengan hostname, shared secret, dan listener pada port 1812/1813. Misalkan:

Pastikan kedua secret sama atau berbeda sesuai kebijakan keamanan. Anda juga harus menambah client MikroTik pada masing-masing server dengan alamat IP mikrotik, secret, dan metoda diatur. Untuk contoh, port, hostname, dan shared secret masing‑masing dapat dipilih; tapi harap jaga kerahasiaan secret.

Langkah-langkah Konfigurasi

Menambahkan Server RADIUS di MikroTik

Manfaatkan command line (CLI) atau WinBox. Berikut contoh menggunakan CLI. Tekan tombol “RouterOS terminal” dan ketik:

# Tambahkan server pertama
/radius add address=192.168.1.10 secret=RADIUSPRAKTEKTIK service=pap,mschap2 disabled=no

# Tambahkan server kedua
/radius add address=192.168.1.20 secret=RADIUSPRAKTEKTIK service=pap,mschap2 disabled=no

Perintah di atas menambahkan dua entry radius pada bagian "radius". Setiap entry berisi IP blok server, secret, dan service yang dicakup. Untuk kebijakan modern, gunakan protocol MSCHAPv2. Jika Anda memakai server yang tidak mendukung PAP, Anda dapat menghilangkan “pap” dari daftar service.

Membuat Auto-Load Balancing dan Failover

RouterOS menyediakan mekanisme “RADIUS directive” melalui “/radius server-interface”. Namun cara termudah membuat load balancing antara dua server adalah dengan menggunakan script yang disimpan di “/system script” dan dijalankan pada event “/ip hotspot”, “/interface wpa” atau “/aaa user login”. Contoh sederhana menggunakan script untuk memilih server secara round robin:

# Simpan script di /system script
/system script add name=radius_selector source={
  :local radiusServer 0
  :local servers [/radius find]
  :local totalServers [:len $servers]
  :if ($totalServers = 0) do={
      :return
  }
  :set radiusServer [:math add $radiusServer 1]
  :if ($radiusServer > $totalServers) do={
    :set radiusServer 1
  }
  :local targetServer [/radius get $servers[$radiusServer] address]
  :log info "memilih radius server: $targetServer"
  /radius enable [$servers[$radiusServer]]
  # disable yang lain
  :foreach server in=[$servers~] do={
      :if ($server != $servers[$radiusServer]) do={
          /radius disable $server
      }
  }
}

# Jalankan script setiap menit pada interval
/system scheduler add name=radius_scheduler interval=1m on-event=radius_selector

Dengan script tersebut, MikroTik akan memilih satu server RADIUS secara bergantian setiap menit. Script ini juga menonaktifkan server lain sehingga hanya satu yang aktif. Ini hanyalah contoh dasar; dalam produksi, lebih baik gunakan mekanisme kesehatan (health-check) seperti memonitor balasan RADIUS dan switch bila TTL error.

Pengaturan Client RADIUS

Selanjutnya, konfigurasikan klien (user) pada MikroTik. Jika Anda menggunakan User Manager, TCP/IP Pool, atau Hotspot, pastikan opsi “Caller ID” atau “AAA methods” mengarah pada RADIUS. Contoh konfigurasi Hotspot:

/ip hotspot profile set default hotspot-auth=manual hotspot-address=192.168.88.1 hotspot-mac=auto
/ppp secret add name="user1" password="BrCHeABC" service=wireless profile=default

Setelah RADIUS diaktifkan, setiap login akan diteruskan ke server RADIUS terpilih. Jika menggunakan PPP, gunakan “/ppp aaa set enabled=yes” supaya sesi PPP memakai metode AAA.

Pengujian Konfigurasi

Pastikan koneksi berhasil dengan menjalankan perintah “/tool fetch” atau “/ping” ke masing-masing server. Selain itu, test login user melalui Hotspot atau PPP. Jika login berhasil, lihat log pada MikroTik melalui “/log find ?radius” atau “/log print filter=radius”. Pada sisi server RADIUS, periksa log untuk menerima paket. Jika ada kegagalan, munculkan informasinya untuk diagnosis.

Pengaturan Logging dan Monitoring

Mengamati komunikasi RADIUS penting untuk deteksi masalah. Mari tambahkan log pada MikroTik. Contoh:

/log add topics=radius action=info value="Auth request to server: %address"

Pada server RADIUS, aktifkan log debug; pada FreeRADIUS, file “/etc/freeradius/3.0/radiusd.conf” tambahkan lines:

debug=yes

Untuk monitoring uptime, gunakan scheduler pada MikroTik yang mem‑ping server RADIUS dan menulis ke log atau mengaktifkan service normal bila ada exception. Contoh script health-check:

/system script add name=radius_health source={
  :local servers [/radius find]
  :foreach server in=$servers do={
      :local address [/radius get $server address]
      :local result [/ping $address count=3 address=8.8.8.8 &=.!error]
      :if ($result = 0) do={
          :log warning "Server $address down, disabling"
          /radius disable $server
      } else={
          :log info "Server $address up"
          /radius enable $server
      }
  }
}
# Scheduler
/system scheduler add name=radius_health_check interval=5m on-event=radius_health

Dengan demikian, MikroTik akan menonaktifkan server RADIUS yang tidak membalas ping dan mengaktifkan kembali saat muncul respons.

Perbaikan Masalah Umum

Mismatched Secret

Jika login gagal meskipun user valid, pastikan shared secret tersetting sama pada MikroTik dan semua server RADIUS. Untuk debug, gunakan “/radius print detail” pada MikroTik. Jika terjadi mismatch, log akan berisi “wrong secret”.

Port yang Diblokir

Pastikan firewall dan iptables di jaringan tidak memblokir port 1812/1813. Di MikroTik, periksa “/ip firewall filter” dan “/ip firewall nat”. Pada firewall eksternal, konfigurasikan aturan state conntrack = dst‑track dst‑port 1812/1813.

Service Not Defined

Jika klien menggunakan service MSCHAPv2 tetapi server hanya mendukung PAP, login akan gagal. Pastikan service yang diaktifkan di MikroTik (CLI: service=mschap2) sudah konform dengan server. Jika server tidak mendukung, hapus “mschap2” atau integrasikan server tambahan yang mendukung.

Kecepatan Response Slow

Jika server RADIUS berada di jaringan yang jauh, latency tinggi dapat memperlambat proses otentikasi. Pertimbangkan menempatkan server RADIUS di LAN, atau gunakan VPN antar satu sama lain. Pastikan UDP packet size tidak melewati MTU. Atur “fragment” pada RADIUS jika perlu.

Failover Pada PPPoE

Jika PPPoE router menggunakan dua server RADIUS, Anda juga dapat menambahkan “/ppp profile set uses=default-up-down add-default-route=yes sandbox=yes”. Pendekatan di atas memungkinkan failover otomatis karena PPPoE menggunakan multiple server RADIUS secara internal.

Contoh Konfigurasi

Konfigurasi MikroTik

Berikut contoh lengkap skenario dengan dua server RADIUS yang aktif secara bersamaan, tidak di loadbalance, melainkan tetap diaktifkan semua. Tambahkan script “radius_monitor” untuk memastikan semua server aktif.

/radius add address=192.168.10.10 secret=RADIUS1 service=mschap2 disabled=no
/radius add address=192.168.10.20 secret=RADIUS2 service=mschap2 disabled=no

/system script add name=radius_monitor source={
  :local servers [/radius find]
  :foreach server in=$servers do={
      :local address [/radius get $server address]
      :log info "mencheck server $address"
      :local result [/ping $address count=3]
      :if ($result = 0) do={
          :log warning "lokasi server $address down"
          /radius disable $server
      } else={
          :log info "server $address aktif"
          /radius enable $server
      }
  }
}
 
/system scheduler add name=radius_monitor_schedule interval=10m on-event=radius_monitor

Konfigurasi Server RADIUS (FreeRADIUS)

Misalkan Anda menggunakan FreeRADIUS 3.x. File konfigurasi /etc/freeradius/3.0/radiusd.conf sudah diubah untuk menerima login dari MikroTik.

# Instalasi dasar
apt install freeradius

# Konfigurasi clients.d/mikrotik.conf
client mikrotik {
    ipaddr = 192.168.88.1
    secret = RADIUS1
    require_message_authenticator = no
}

# Konfigurasi users
users {
    DefaultUser := Cleartext-Password := "user1"
}

Server kedua dapat dikonfigurasi di file /etc/freeradius/3.0/domain2/etc/freeradius/clients.d/ atau menggunakan file clients.conf tambahan. Terapkan unique secret untuk setiap client.

Pengelolaan Keamanan

Karena RADIUS merupakan layanan otentikasi, melindungi shared secret sangat penting. Gunakan secrets yang kompleks, tidak sederhana. Jangan lupa rotasi secrets secara berkala. Jika memungkinkan, aktifkan TLS pada RADIUS (EAP‑TLS). Di sisi MikroTik, gunakan ‘/radius server tls-pem’ untuk mengubah CA. Selalu jadikan firewall aktif; blokir akses ke port 1812/1813 hanya untuk interface internal dan server RADIUS yang sudah terverifikasi. Selalu lakukan backup konfigurasi MikroTik dan RADIUS. Saat update firmware, periksa kompatibilitas script RADIUS.

Kesimpulan

Mengonfigurasi dua server RADIUS pada RouterOS MikroTik menyediakan keandalan tinggi bagi jaringan yang bergantung pada otentikasi. Prosesnya dibagi jadi beberapa tahap: menambahkan entry radius di MikroTik, membuat mekanisme load balancing atau failover, menyesuaikan klien untuk memakai RADIUS, serta melakukan pengujian dan log monitoring. Menulis script monitor lanjutan membantu mengetahui status masing‑masing server. Penanganan masalah umum, seperti mismatched secret, blocking port, atau service tidak selada, biasanya dijelaskan dalam log dan detail perintah. Akhirinya, kebijakan keamanan (shared secret, firewall, TLS) harus diimplementasikan dengan ketat untuk mencegah penyalahgunaan. Dengan contoh konfigurasi di atas, administrator dapat langsung menerapkan dual RADIUS pada jaringan MikroTik mereka, menjaga ketersediaan, dan meningkatkan keamanan jaringan.

Referensi

Kembali