Manajemen RADIUS Server Mikrotik Menggunakan MangoSpot

fsatrion_
Network Evolution
Published in
6 min readJan 20, 2021

RADIUS (Remote Authentication Dial In User Service) adalah sebuah server yang digunakan untuk melayani service Authentication, Authorization, dan Accounting (AAA) di dalam sebuah jaringan. sederhananya RADIUS server memiliki peran dalam pengumpulan user yang nantinya user-user tersebut dapat digunakan oleh client yang berada dalam satu jaringan.

Freeradius merupakan aplikasi open source yang dikembangan pada tahun 1999 oleh Miquel van Smoorenburg danAlan DeKok. Freeradius sesuai dengan namanya yaitu menawarkan RADIUS server untuk melayani service Authentication, Authorization, dan Accounting (AAA). Sedangkan MangoSpot sendiri memiliki peran sebagai managemen Freeradius untuk memudahkan proses managemen dan monitoring.

Penggunaan eksternal RADIUS server pada mikrotik dapat membantu mengurangi beban load cpu saat melakukan authentication user horspot atau untuk keperluan user PPPoE. Untuk topologi penggunaan eksternal RADIUS pada Router Mikrotik seperti gambar di bawah ini.

Pada artikel ini menggunakan OS Centos7 sebagai server yang akan diinstall freeradius + mangospot. Freeradius tersedia juga pada keluarga linux debian. untuk langkahnya sebagai berikut.

1. Install Apache Web Server

Apache web server digunakan untuk menampilkan halaman website.

$ sudo yum -y update
$ sudo yum -y install httpd
$ sudo systemctl enable — now httpd
$ sudo systemctl status httpd

2. Install PHP

penginstallan PHP ditujukan untuk dapat menjalankan website dengan format PHP. Pada mangospot membutuhkan module php curl, gd, mcrypt, xml, ssh2, xls dan zip untuk dapat menjalankan semua fiturnya. versi PHP yang digunakan yaitu versi 7.

$ sudo yum -y install epel-release
$ sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum -y install yum-utils
$ sudo yum-config-manager — disable remi-php54
$ sudo yum-config-manager — enable remi-php72
$ sudo yum -y install php php-{cli,curl,mysqlnd,devel,gd,pear,mcrypt,mbstring,xml,pear,ssh2,xsl,zip}

~Check Version PHP~

$ php -v

3. Install MariaDB

MariaDB digunakan sebagai database SQL yang akan menyimpan user.

$ sudo tee /etc/yum.repos.d/MariaDB.repo<<EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

$ sudo yum -y install MariaDB-server MariaDB-client
$ sudo systemctl start — now mariadb
$ sudo systemctl status mariadb

~ Konfigurasi SQL ~

Configure SQL bertujuan untuk melakukan setingan awal pada SQL seperti user dan password yang akan digunakan oleh database

$ sudo mysql_secure_installation

~ Konfigurasi Database ~

Configure Database bertujuan untuk membuat database yang akan digunakan oleh Freeradius dengan nama database radius. Penjelasan perintah mysql -u root -p, -u root mendeskripsikan username yang kita gunakan dan -p mendeskripsikan untuk meminta password setelah perintah dijalankan sesuai dengan setting pada mysql_secure_installation. Bisa juga kita menuliskannya dengan mysql -uroot -ppasswordnya.

$ sudo mysql -u root -p

CREATE DATABASE radius;
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY “Passwordnya”;
FLUSH PRIVILEGES;
\q

4. Install Freeradius

$ sudo yum -y install freeradius freeradius-utils freeradius-mysql
$ sudo systemctl enable — now radiusd.service
$ sudo systemctl status radiusd.service

~ Membuka Firewall ~

Membuka firewall untuk service http, https dan radius.

$ sudo firewall-cmd — add-service={http,https,radius} — permanent
$ sudo firewall-cmd — reload

~ Membuat Softlink ~

Softlink sama halnya dengan membuat shorcut pada sistem operasi windows. Tujuannya karena untuk menjalankan radius akan mengakses folder mods-enabled dan memerlukan isi dari sql pada mods-available.

$ sudo ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/

~ Konfigurasi modul SQL ~

Bagian ini akan mengkonfigurasi koneksi freeradius dengan database SQL.

$ sudo nano /etc/raddb/mods-available/sql

sql {
driver = “rlm_sql_mysql”
dialect = “mysql”

server = “localhost”
port = 3306
login = “radius”
password = “Passwordnya”

radius_db = “radius”
}

read_clients = yes
client_table = “nas”

~ Merubah Group ~

Bagian ini akan merubah group kepemilikan folder /etc/raddb/mods-enabled/sql menjadi milik service radius.

$ sudo chgrp -h radiusd /etc/raddb/mods-enabled/sql

5. Install MangoSpot

MangoSpot merupakan application web yang digunakan untuk melakukan montoring, accounting, serta manajemen RADIUS dengan memanfaatkan layanan Authentication, Authorization, dan Accounting (AAA) pada RADIUS.

~ Konfigurasi sqlcounter~

sqlcounter pada radius server berfungsi sebagai fungsi untuk menjalankan layanan layanan Authentication, Authorization, dan Accounting (AAA). lakukan penambahan query accessperiod (untuk periode akses user) dan quotalimit (untuk limit quota user) pada bagian paling bawah.

$ sudo nano /etc/raddb/mods-available/sqlcounter

sqlcounter accessperiod {
sql_module_instance = sql
dialect = ${modules.sql.dialect}

counter_name = Max-Access-Period-Time
check_name = Access-Period
key = User-Name
reset = never

$INCLUDE ${modconfdir}/sql/counter/${dialect}/${.:instance}.conf
}

sqlcounter quotalimit {
sql_module_instance = sql
dialect = ${modules.sql.dialect}

counter_name = Max-Volume
check_name = Max-Data
reply_name = Mikrotik-Total-Limit
key = User-Name
reset = never

$INCLUDE ${modconfdir}/sql/counter/${dialect}/${.:instance}.conf
}

~ Membuat File accessperiod~

$ sudo nano /etc/raddb/mods-config/sql/counter/mysql/accessperiod.conf

query = “\
SELECT UNIX_TIMESTAMP() — UNIX_TIMESTAMP(AcctStartTime) \
FROM radacct \
WHERE UserName=’%{${key}}’ \
ORDER BY AcctStartTime LIMIT 1”

~ Membuat File quotalimit ~

$ sudo nano /etc/raddb/mods-config/sql/counter/mysql/quotalimit.conf

query = “\
SELECT (SUM(acctinputoctets) + SUM(acctoutputoctets)) \
FROM radacct \
WHERE UserName=’%{${key}}’”

~ Tambahkan Dan Edit File Default~

File default berisi query yang akan memungkinkan radius melakukan fungsi authorize, accounting, sessioning, dan loging. aktifkan query sql dan tambahkan query lainnya sesuai perintah dibawah.

$ sudo nano /etc/raddb/sites-enabled/default

authorize {
# See “Authorization Queries” in mods-available/sql
sql
expiration
logintime
quotalimit
dailycounter
accessperiod
monthlycounter
noresetcounter
}

accounting {
# See “Accounting queries” in mods-available/sql
sql
)

session {
# See “Simultaneous Use Checking Queries” in mods-available/sql
sql
}

post-auth {
# See “Authentication Logging Queries” in mods-available/sql
sql
}

~ Edit Isi File Radius.conf Dan Restart Radius Services~

Radiusd.conf berisi file konfigurasi dari radius. Pada bagian ini akan menambahkan sqlcounter kedalam konfigurasu radius.

$ sudo nano /etc/raddb/radiusd.conf

$INCLUDE mods-enabled/
$INCLUDE mods-available/sqlcounter

$ sudo systemctl restart radiusd

~ Download File MangoSpot~

$ sudo cd /var/www/html
$ sudo git clone https://github.com/mangospot-net/MangoSpot.git
$ sudo cd MangoSpot

~ Import Sekema SQL File (Schema.sql & Data.sql)~

Menambahkan sekema serta isi data dari database radius yang akan digunakan oleh freeradius dan dimenejemen oleh MangoSpot. Jika diminta masukkan pasword, masukkan password yang sebelumnya sudah dikonfigurasi.

$ sudo mysql -u root -p radius < /SQL/1-schema-mysql.sql
$ sudo mysql -u root -p radius < /SQL/3-data-mysql.sql

~ Konfigurasi Komunikasi MangoSpot dengan Database~

$ sudo MangoSpot/include/config.php

define(“DB_USER”, “root”); // username
databasedefine(“DB_PASSWORD”, “passwordnya”); // password database
define(“DB_DATABASE”, “radius”); // table database

6. Konfigurasi .htaccess

Menurut developer MangoSopt perlu mengaktifkan .htaccess agar semua fitur didalamnya dapat berfungsi. htaccess sendiri merupakan file text sederhana dalam format ASCII yang umumnya digunakan untuk merubah beberapa konfigurasi untuk mengarahkan pada web server Apache. file htaccess diletakkan pada folder website yang kita miliki seperti contoh /var/www/html. Tahap awal dalam melakukan konfigurasi .htacces dengan mengaktifkan modul mod_rewrite.so pada direktori dibawah. untuk memudahkan pencarian gunakan ctrl+w.

$ sudo nano /etc/httpd/conf.modules.d/00-base.conf

~ Konfigurasi file httpd.conf~

Pada bagian ini membuka izin dari web server untuk menjalankan .htaccess

$ sudo nano /etc/httpd/conf/httpd.conf

<Directory “/var/www/html”>
AllowOverride ALL
</Directory>

~ Mengaktifan RewriteEngine~

Untuk mengaktifkan .htaccess dapat menggunakan RewriteEngine On

$ sudo nano /var/www/html/.htaccess
RewriteEngine On

Tampilan Dashbord MangoSpot

Hingga tahap ini proses instalasi sudah berhasil dan tinggal melakukan konfigurasi pada mikrotik dan radius NAS untuk dapat terhubung. Untuk memudahkan dalam melihat dan mengedit isi database, disaranakn untuk menginstall phpmyadmin. Berhubung saya sedang dirumah dan perangkat mikrotik tertinggal dikontrakan, untuk uji coba pada mikrotik hingga user dapat terkoneksi pada hotspot gateway dengan menggunaakan user yang dibuat pada RADIUS server akan dilanjut pada artikel selanjutnya.

Mohon maaf jika terdapat salah kata dalam penulisan artikel kali ini, karena kebenaran datangnya hanya dari yang maha kuasa dan kesalahan datangnya dari manusia. Terimakasih

Refrence :

https://freeradius.org/
https://computingforgeeks.com/installing-freeradius-and-daloradius-centos-7/
https://github.com/mangospot-net/MangoSpot
https://www.tutorialspoint.com/how-to-configure-mod-rewrite-for-apache-on-centos-7

--

--