Langsung ke konten utama

Instalasi FreeRADIUS ft. daloRADIUS | [UPDATE - Study case pada Debian Buster]

NOTE:
Artikel ini telah mengalami perubahan. Sebelumnya, versi sistem operasi yang saya gunakan adalah Debian Wheezy. Dengan menggunakan Debian Buster beberapa versi package juga ikut berubah. Update package akan saya beri warna font merah



Remote Authentication Dial-In User Service atau sering disebut dengan RADIUS adalah sebuah protokol jaringan yang melayani administrasi pengguna dalam penggunaan jaringan secara terpusat. Aspek pelayanan yang diberikan meliputi Authetication, Authorization dan Accounting yang kemudian disingkat AAA atau triple A. RADIUS akan sangat dibutuhkan oleh provider skala besar, misalkan Internet Service Provider (ISP). Untuk platform MikroTik, RADIUS sering dikenal dengan userman (user manager) karena tugasnya memang manajemen pengguna.

Salah satu package yang sangat sering digunakan adalah FreeRADIUS. FreeRADIUS dapat digunakan hampir disemua keluarga Unix. Karena gratis dan cukup handal, FreeRADIUS banyak sekali digunakan. Untuk manajemen data, FreeRADIUS menyediakan module untuk beberapa DBMS seperti PostgreSQL dan MySQL. Jadi apabila anda memutuskan untuk menggunakan FreeRADIUS, jangan lupa untuk menginstall salah satu dari DBMS yang disedikan beserta module-nya.

Namun sayang sekali, FreeRADIUS tidak dibekali dengan friendly UI untuk memudahkan pengguna dalam pengoperasiannya. Anda harus mengunakan console setiap ingin mengirimkan perintah. Tentu hal ini sangat merepotkan karena sangat tidak praktis dan kurang efisien. Tapi jangan khawatir, karena di luar sana ada orang baik hati yang bersedia mengembangkan sebuah aplikasi berbasis web yang dapat digunakan sebagai jembatan antara FreeRADIUS dan pengguna. Mari kita sambut daloRADIUS.

INSTALASI. Berikut adalah langkah-langkah instalasi FreeRADIUS beserta daloRADIUS. Instalasi dilakukan pada mesin dengan sistem operasi Debian Buster.



Beberapa Pasang beberapa package pendukung daloRADIUS berikut diantaranya:
Level user yang digunakan yaitu root. Jadi, jangan lupa untuk switch user (su) dahulu.

LANGKAH 1.
[UPDATE]
1. PHP dan beberapa modul yang dibutuhkan. Saya menggunakan PHP7.3. Modul yang dibutuhkan diantaranya: php7.3-gd php7.3-curl php7.3-mysql php-mail php-mail-mime php-pear php-db (pear)
2. MySQL Server 8
3. Webserver. Saya menggunakan Nginx 1.14.2
4. Git sebagai cloner repository daloRADIUS.
(FYI)
5. grep (GNU grep) 3.3
6. sed (GNU sed) 4.7

# apt-get install php7.3-fpm php-common php7.3-gd php7.3-curl php7.3-mysql php-mail php-mail-mime php-pear php-db mysql-server nginx git
# pear install db


LANGKAH 2. Pasang package FreeRADIUS beserta pendukungnya. Versi FreeRADIUS yang saya gunakan adalah FreeRADIUS version 3.0.17

# apt-get install freeradius freeradius-mysql freeradius-utils


LANGKAH 3. Buat user baru pada MySQL untuk menghindari penggunaan root user sebagai langkah pengamanan. Buat juga database sekaligus permission pada user tersebut

# mysql -u root -p
# create user radius identified by 'radius'
# create database radius
# grant all on radius.* to radius@localhost identified by radius
 alter user 'radius'@'%' identified with mysql_native_password by 'radius'

Tekan tombol CTRL + C untuk keluar dari interface MySQL
Keterangan: radius = usernameradius = password, dan radius = database. Sebagai catatan, karena kebutuhan artikel saya menggunakan username dan password yang guestable. Silahkan menggunakan username dan password yang lebih aman.

LANGKAH 4. Import skema database yang dibutuhkan oleh FreeRADIUS. 

# mysql -uradius -pradius radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql

                                                                 
LANGKAH 5. Masukkan satu akun yang nantinya digunakan untuk testing.

# mysql -uradius -pradius radius
insert into radcheck (username,attribute,op,value) values("sqltest", "Cleartext-Password", ":=", "sqltest");

Tekan tombol CTRL + C untuk keluar dari interface MySQL

LANGKAH 6. Seluruh konfigurasi modul, terdapat pada folder /etc/freeradius/3.0/mods-enabled/. Dan konfigurasi modul yang tersedia, bisa dilihat pada folder /etc/freeradius/3.0/mods-available/. Salin dan sunting konfigurasi yang ada. Untuk mempermudah, hilangkan semua baris yang mengandung comment (#)

# cd /etc/freeradius/3.0/mods-enabled/
# nano /etc/freeradius/3.0/mods-available/sql

Cari baris ini berikut ini dan hilangkan tanda comment . Pada versi 3.0, pendefinisian DBMS berubah dari keyword database menjadi driver

driver = "rlm_sql_mysql"
server = localhost
port = 3306
login = radius
password = radius
radius_db = radius
read_clients = yes

Tekan tombol CTRL + O untuk menyimpan dan CTRL + C untuk keluar dari interface nano. Agar lebih rapi lagi, hilangkan semua baris yang mengandung argumen dan blank line yang kemudian outputnya kita redirect ke kedalam file /etc/freeradius/3.0/mods-available/sql

#  grep -v -E "^\s*#|^\s*$" ../mods-available/sql > /etc/freeradius/3.0/mods-available/sql


LANGKAH 7. Selanjutnya buka file /etc/freeradius/sites-enabled/default dan hilangkan tanda pagar (uncomment) pada baris yang mengandung kata sql. Kata tersebut berada di bagian authorize, accounting, session, post-auth, post-auth-type . Agak susah mungkin, tapi cobalah jeli lagi.

# nano /etc/freeradius/sites-enabled/default

Tekan tombol CTRL + O untuk menyimpan dan CTRL + C untuk keluar dari interface nano. 

LANGKAH 8.
Buka juga file /etc/freeradius/radiusd.conf . Kemudian uncomment baris yang mengandung kata $INCLUDE sql.conf dan  $INCLUDE clients.conf

# nano /etc/freeradius/radiusd.conf

Tekan tombol CTRL + O untuk menyimpan dan CTRL + C untuk keluar dari interface nano

UPDATE
Pada tutorial ini ditulis, saya tidak menyadari bahwa disini tidak ada pengkonfigurasian client nas. Secara default Freeradius sudah membuat server nas dengan secret testing123. Untuk memastikan, Silahkan lakukan langkah berikut:
Edit file /etc/freeradius/3.0/clients.conf . Karena hanya testing, anda bisa memanfaatkan parameter default. Cari kata secret dan rubah nilainya sesuai keinginan (disini sudah terisi testing123). Untuk tahap produksi, anda dapat membuat blok baru dengan dengan nama baru.

Selain melalui file /etc/freeradius/3.0/clients.conf , anda bisa menggunakan daloRADIUS untuk menambahkan NAS server.

LANGKAH 9. Langkah selanjutnya adalah pengujian apakah konfigurasi sudah benar. Sebelumnya, anda harus menghentikan terlebih dahulu proses FreeRADIUS yang berjalan pada backgroud. 

# service freeradius stop
# freeradius -X

Apabila tidak ada error yang muncul, radius anda siap dijalankan. Tekan tombol CTRL + C untuk menghentikan mode debug FreeRADIUS. Anda bisa menjalankan FreeRADIUS kembali dengan perintah.

# service freeradius start


LANGKAH 10. Untuk menguji FreeRADIUS server menggunakan username, masukkan perintah berikut:

# radtest sqltest sqltest localhost 18128 testing123

Output yang seharusnya keluar dari perintah diatas adalah:

Sent Access-Request Id 225 from 0.0.0.0:48325 to 127.0.0.1:1812 length 77
        User-Name = "sqltest"
        User-Password = "sqltest"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 18128
        Message-Authenticator = 0x00
        Cleartext-Password = "sqltest"
Received Access-Accept Id 225 from 127.0.0.1:1812 to 127.0.0.1:48325 length 20


LANGKAH 11. Pada langkah berikut akan dijabarkan tahapan instalasi daloRADIUS. Untuk memulainya, download dahulu aplikasinya menggunakan git dengan link  https://github.com/lirantal/daloradius.git . Letakkan pada folder /var/www/

# cd /var/www
# git clone https://github.com/lirantal/daloradius.git


LANGKAH 12. Rubah permission dan kepemilikan direktori daloRADIUS dengan perintah:

# chown www-data:www-data daloradius
# chmod 755 daloradius

LANGKAH 13. Import konfigurasi daloRADIUS pada database dengan cara:

# cd daloradius
# mysql -uradius -pradius radius < contrib/db/mysql-daloradius.sql


LANGKA 14.
Rubah konfigurasi koneksi ke database dengan merubah file library/daloradius.conf.php

# nano library/daloradius.conf.php


Cari baris berikut dan isi sesuai parameternya:

$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radius';
$configValues['CONFIG_DB_NAME'] = 'radius';

Tekan tombol CTRL + O untuk menyimpan dan CTRL + C untuk keluar dari interface nano

LANGKAH 15. Atur agar direktori daloRADIUS dapat dibaca oleh Nginx. Buat file  file  /root/daloradius/daloradius-nginx.conf

# nano /root/daloradius/daloradius-nginx.conf


Kemudian isikan baris berikut:

server {
    listen 80;
    server_name _;
    index index.php index.html index.htm;
    root /root/daloradius;
    location / { try_files $uri $uri/ =404; }
    location ~ \.php$ { 
         include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; }
}

Tekan tombol CTRL + O untuk menyimpan dan CTRL + C untuk keluar dari interface nano. 

Masukkan konfigurasi server block dari daloradius ke dalam konfigurasi utama Nginx. Tambahkan tepat di bawah blok http {}.  Jangan lupa hapus baris include /etc/nginx/sites-enabled/*; 

#  nano /etc/nginx/nginx.conf

Tambahkan baris: 

include /root/daloradius/daloradius-nginx.conf;


LANGKAH 16. Sunting pengaturan php-fpm.

#  sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.3/fpm/php.ini


LANGKAH 17.
Restart semua service:

#  systemctl restart php7.3-fpm


Untuk memastikan konfigurasi benar, lakukang testing terlebih dahulu. Apabila tidak ada error, silahkan restart service.

nginx -t
# systemctl restart nginx


FINAL. Silahkan buka browser dan arahkan pada alamat http://localhost/dalradius . Apabila muncul tampilan berikut, berarti konfigurasi anda berjalan dengan benar.


Untuk masuk ke daloRADIUS, gunakan:
Username: administrator
Password: radius

Jangan lupa untuk mengganti password

Sekian tutorial dari saya. Semoga bermanfaat, salam.

Artikel selanjutnya: Integrasi FreeRADIUS dengan MikroTik

[UPDATE]
Secara default nilai dari parameter berikut sudah benar, hanya saja anda perlu memastikan kembali. Silahkan buka file berikut: /etc/freeradius/sql.conf kemudian cari baris readclient=yes. Yang biasanya terjadi adalah, walaupun baris tersebut telah memiliki value yes, namun masih dalam kondisi disabled (comment). Yang harus anda lakukan adalah, buka komen tersebut. Selanjutnya anda sudah dapat menambahkan nas melalui daloRadius. Selanjutnya reload service dengan perintah systemctl reload freeradius


_______________
reference:
- Ubuntugeek.com. (2018). Install Freeradius on ubuntu 16.10 Server and manage using daloradius (Freeradius web management application) | Ubuntu Geek. [online] Available at: http://www.ubuntugeek.com/install-freeradius-on-ubuntu-16-04-server-and-manage-using-daloradius-freeradius-web-management-application.html [Accessed 24 May 2018].
Freeradius.1045715.n5.nabble.com. (2019). Users - NAS list with MySQL. [online] Available at: http://freeradius.1045715.n5.nabble.com/NAS-list-with-MySQL-td2775305.html [Accessed 13 Oct. 2019].
- Syed Jahanzaib Personal Blog to Share Knowledge !. (2019). freeradius dynamic clients – Syed Jahanzaib Personal Blog to Share Knowledge !. [online] Available at: https://aacable.wordpress.com/tag/freeradius-dynamic-clients/ [Accessed 13 Oct. 2019].
- service, R. and Madden, S. (2019). Reload Freeradius clients without restart the service. [online] Server Fault. Available at: https://serverfault.com/questions/401633/reload-freeradius-clients-without-restart-the-service [Accessed 13 Oct. 2019].



Komentar

  1. Kalo di stb openwrt gmana om installY,pake perintah apt gak bisa

    BalasHapus

Posting Komentar

Terima kasih telah berkunjung.

Postingan populer dari blog ini

Hubungan Manis antara Conan Edogawa dan Haibara Ai.

( Hubungan Manis antara Conan Edogawa dan Haibara Ai)  Halo para Conaners, tahu kenyataan unik nggak. Ternyata Haibara Ai tuh demen lho sama Conan Edogawa. Tapi dia berusaha menyembunyikannya lantaran dia udah tau kalo Conan (Shinichi) tuh suka dan cinta sama Ran. Haibara yang kita ketahui mempunyai kepribadian dingin ini, tak gampang putus asa nih buat nunjukin kegigihannya untuk mendapatkan perhatian dari Conan. Yuk kita lihat, usaha apa saja yang dilakukan Haibara untuk menaklukan Conan :

Live Streaming ke Banyak Media Sosial

Beberapa dekade terakhir, banyak sekali para gamer yang "nyambi" cari uang dengan melakukan live stream di media sosial terutama Facebook. Sebenarnya saya juga mulai kesel karena para fans live streamer sering membagikan live streaming-nya ke grup Facebook. Sehingga grup Facebook yang awalnya diperuntukkan sebagai media diskusi malah jadi ajang pencarian views. Spam dan annoying banget.