Install LAMP Stack
Cara penginstalan LAMP bisa dilihat Disini
Izinkan koneksi WWW (Apache)
sudo ufw allow WWW
Mungkin dibeberapa kasus perintah tersebut tidak bekerja. Alternatifnya adalah
sudo ufw allow Apache
Install Dan Konfigurasi FreeRADIUS
sudo apt install freeradius freeradius-mysql freeradius-utils
Tes FreeRADIUS
Tes konfigurasi default FreeRADIUS apakah ada kesalahan dan sudah bisa menerima koneksi.
Hentikan dulu service FreeRADIUS karena tidak dapat menjalankan 2 instance layanan secara bersamaan.
sudo systemctl stop freeradius
Jalankan mode FreeRADIUS Debuging.
sudo freeradius -X
Jika freeradius sudah bekerja dengan baik hasil output akhirnya adalah:
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on proxy address * port 59023
Listening on proxy address :: port 54620
Ready to process requests
Hentikan mode Debuging dengan menekan Ctrl+C
Jalankan dan aktifkan service FreeRADIUS agar berjalan pada saat boot sistem.
sudo systemctl enable --now freeradius
Izinkan Firewall koneksi FreeRADIUS
sudo ufw allow to any port 1812 proto udp
sudo ufw allow to any port 1813 proto udp
Konfigurasi Database
Login kedalam MariaDB/MySQL
sudo mysql -u root -p
Dalam kasus ini saya akan membuat database sebagai berikut:
Database: radius
User: radius
Password: 123456
Buat database
create database radius;
Buat user
create user 'radius'@'localhost' identified by '123456';
Berikan akses user untuk mengelola database
grant all privileges on radius.* to 'radius'@'localhost';
Flush!!
flush privileges;
Keluar
quit;
Mengisi database dengan skema MySQL RADIUS.
Login sebagai root
sudo su
Import database schema
mysql -u root -p radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
Beralih kembali ke akun non-root
exit
Cek tabel database radius, apakah schema sudah berhasil di import atau belum.
sudo mysql -u root -p
use radius;
show tables;
Atau bisa juga mengecek dengan perintah:
sudo mysql -u root -p -e "use radius;show tables;"
Output akhir jika berhasil:
MariaDB [radius]> show tables;
+------------------+
| Tables_in_radius |
+------------------+
| nas |
| radacct |
| radcheck |
| radgroupcheck |
| radgroupreply |
| radpostauth |
| radreply |
| radusergroup |
+------------------+
8 rows in set (0.000 sec)
Buat symbolic link modul sql ke /etc/freeradius/3.0/mods-enabled
sudo ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/
Install pengedit text nano
sudo apt install nano
Edit file /etc/freeradius/3.0/mods-enabled/sql
sudo nano /etc/freeradius/3.0/mods-enabled/sql
Ubah parameter
1. dialect = "sqlite"
menjadi dialect = "mysql"
2. driver = "rlm_sql_null"
menjadi driver = "rlm_sql_${dialect}"
3. Jika kita menggunakan MySQL, konfigurasi FreeRADIUS mengasumsikan penggunaan sertifikat TLS secara default. Untuk tujuan tutorial ini, kami tidak akan menggunakan sertifikat TLS, jadi kami akan mengomentari bagian MySQL TLS, dengan menambahkan tanda #
di awal setiap baris di bagian tls. Bagian TLS terlihat seperti ini :
mysql {
# If any of the files below are set, TLS encryption is enabled
tls {
ca_file = "/etc/ssl/certs/my_ca.crt"
ca_path = "/etc/ssl/certs/"
certificate_file = "/etc/ssl/certs/private/client.crt"
private_key_file = "/etc/ssl/certs/private/client.key"
cipher = "DHE-RSA-AES256-SHA:AES128-SHA"
tls_required = yes
tls_check_cert = no
tls_check_cert_cn = no
}
# If yes, (or auto and libmysqlclient reports warnings are
# available), will retrieve and log additional warnings from
# the server if an error has occured. Defaults to 'auto'
warnings = auto
}
Beri tanda #
sehingga menjadi seperti ini:
mysql {
# If any of the files below are set, TLS encryption is enabled
# tls {
# ca_file = "/etc/ssl/certs/my_ca.crt"
# ca_path = "/etc/ssl/certs/"
# certificate_file = "/etc/ssl/certs/private/client.crt"
# private_key_file = "/etc/ssl/certs/private/client.key"
# cipher = "DHE-RSA-AES256-SHA:AES128-SHA"
# tls_required = yes
# tls_check_cert = no
# tls_check_cert_cn = no
# }
# If yes, (or auto and libmysqlclient reports warnings are
# available), will retrieve and log additional warnings from
# the server if an error has occured. Defaults to 'auto'
warnings = auto
}
4. Hilangkan tanda #
pada parameter :server
port
login
password
Lalu isikan value sesuai dengan user dan password pada saat membuat database
Yang awalnya seperti ini:
# server = "localhost"
# port = 3306
# login = "radius"
# password = "radpass"
Ubah menjadi seperti ini:
server = "localhost"
port = 3306
login = "radius"
password = "123456"
5. Sesuaikan value dari parameter radius_db
sesuai dengan nama database yang telah kita buat.
radius_db = "radius"
Karena by default value nya radius
maka saya lewati
6. Lebih jauh ke bawah kami akan menghapus komentar/#
pada baris yang berisi read_clients = yes
. Ini untuk mengaktifkan FreeRADIUS untuk membaca klien dari database. Berikut tampilannya:
Dari seperti ini:
# read_clients = yes
Menjadi seperti ini:
read_clients = yes
7. Beberapa baris dibawahnya, kami ingin client_table = "nas"
tidak diberi komentar/#
. Seharusnya tidak diberi komentar secara default, tetapi cukup periksa untuk memastikan tampilannya seperti ini:
client_table = "nas"
Sekarang ubah hak/kepemilikan grup dari file yang baru saja kita edit.
sudo chgrp -h freerad /etc/freeradius/3.0/mods-available/sql
sudo chown -R freerad:freerad /etc/freeradius/3.0/mods-enabled/sql
Restart service FreeRADIUS
sudo systemctl restart freeradius.service
Karena kami telah melakukan beberapa pengeditan, kami harus menjalankan FreeRADIUS dalam mode debug sehingga kami tahu jika kami melakukan kesalahan, sebelum melangkah lebih jauh.
Hentikan dulu layanan FreeRADIUS karena kami tidak dapat menjalankan 2 instance layanan secara bersamaan.
sudo systemctl stop freeradius.service
Dan mode debuging FreeRADIUS.
sudo freeradius -X
Output akhir jika tidak ada kesalahan dalam konfigurasi:
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on proxy address * port 41706
Listening on proxy address :: port 42314
Ready to process requests
Keluar dari mode debug dengan menekan Ctrl+C
Jalankan kembali service FreeRADIUS dengan perintah:
sudo systemctl start freeradius.service
Sekarang FreeRADIUS Berhasil di install di Ubuntu 22.04/20.04, dan dikonfigurasi MySQL atau MariaDB juga berhasil.
Selanjutnya kita akan install daloRADIUS, yaitu control panel berbasis web untuk mengatur server FreeRADIUS kita. Langkah ini opsional, bagi mereka yang menginginkan GUI untuk server FreeRADIUS mereka.
Install & Konfigurasi daloRADIUS (FreeRADIUS GUI)
daloRADIUS adalah panel manajemen web RADIUS yang populer, yang menawarkan manajemen pengguna, pelaporan grafis, akuntansi, mesin penagihan, terintegrasi dengan GoogleMaps, dan banyak lagi. Ini adalah salah satu solusi paling populer jika Anda membutuhkan GUI FreeRADIUS.
Pertama kita akan mengunduh daloRADIUS dari repositori Github
Saya akan menggunakan wget untuk mendownloadnya, jadi saya harus menginstalnya karena tidak terinstal secara default, dan unzip karena kita akan mendownload file .zip
sudo apt install wget unzip
Download DaloRADIUS
wget https://github.com/lirantal/daloradius/archive/master.zip
Ekstrak file
unzip master.zip
Pindah ke direktori DaloRADIUS
cd daloradius-master
Isi database dengan skema daloRADIUS.
sudo mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
sudo mysql -u root -p radius < contrib/db/mysql-daloradius.sql
Keluar 1 langkah dari direktori daloradius.
cd ..
Pindahkan direktori daloradius ke direktori /var/www/html/
sudo mv daloradius-master /var/www/html/daloradius
Selanjutnya kita akan mengubah pemilik dan grup untuk folder daloradius menjadi www-data:www-data, yang merupakan pengguna dan grup tempat Server Web Apache berjalan.
sudo chown -R www-data:www-data /var/www/html/daloradius/
Sekarang kita perlu membuat file konfigurasi daloRADIUS. Saat ini kami hanya menyediakan file sampel, jadi kami akan membuat salinan dari file sampel tersebut:
sudo cp /var/www/html/daloradius/library/daloradius.conf.php.sample /var/www/html/daloradius/library/daloradius.conf.php
Ubah izin untuk file konfigurasi daloRADIUS.
sudo chmod 664 /var/www/html/daloradius/library/daloradius.conf.php
Selanjutnya kita edit beberapa variabel di file koneksi daloRADIUS, agar bisa terkoneksi ke database FreeRADIUS.
Buka file konfigurasi menggunakan editor favorit Kamu.
sudo nano /var/www/html/daloradius/library/daloradius.conf.php
Mirip dengan apa yang telah kita lakukan sebelumnya, saat mengedit file konfigurasi FreeRADIUS, kita perlu menyesuaikan variabel untuk pengguna database, kata sandinya, dan nama database.
Ini adalah tampilan awalnya di file konfigurasi daloRADIUS:
$configValues['CONFIG_DB_USER'] = 'root';
$configValues['CONFIG_DB_PASS'] = '';
$configValues['CONFIG_DB_NAME'] = 'radius';
Ubah menjadi seperti ini:
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = '123456';
$configValues['CONFIG_DB_NAME'] = 'radius';
Lihat apakah ada kesalahan konfigurasi
sudo systemctl stop freeradius
sudo freeradius -X
Jika tidak ada kesalahan Ctrl+C untuk berhenti debugging
Jalankan kembali freeradius
systemctl start freeradius
Terakhir restart FreeRADIUS dan Apache untuk memastikan semuanya berfungsi.
sudo systemctl restart freeradius.service apache2
Mengakses DaloRADIUS
Kamu dapat mengakses daloRADIUS melalui browser web dengan mengunjungi:http://server_ip_address/daloradius
Pastikan protokol yang digunakan http://
dan browser Kamu tidak secara otomatis mengubahnya menjadi https://
karena Anda mungkin tidak dapat mengakses daloRADIUS karena kami belum mengonfigurasinya untuk menggunakan SSL.
Halaman awal daloRADIUS terlihat seperti ini:
Default daloRADIUS username/password:
username: administrator
password: radius
*UPDATE:
Di versi DaloRADIUS 2.0 Kita tidak bisa lagi menyimpan direktori daloradius dibawah root dokumen, dengan arti kita diwajibkan menginstall DaloRADIUS di dalam direktori root (tanpa subdirektori)
ERROR 404 / NOT FOUND
Solusinya adalah dengan mengubah paramter lokasi root dokumen didalam konfigurasi /etc/apache2/sites-enabled/000-default.conf
ke direktori tampat dimana DaloRADIUS di install
sudo nano /etc/apache2/sites-enabled/000-default.conf
Dari awalnya seperti ini:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
Ubah menjadi seperti ini:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/daloradius
<Directory /var/www/html/daloradius>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
Lalu restart service Apache
sudo systemctl restart apache2
Lalu buka kembali halaman we DaloRADIUS menggunakan alamat IP atau domain saja
http://IP-ADDRESS atau http://namadomain.com
Tampilan DaloRADIUS v2.0
Keterangan:
Tested on: Ubuntu 22.04 Sumber/referensi: https://bytexd.com/freeradius-ubuntu/