dikarenakan ada bug di RADIUS-LDAP, maka mau tak mau backend untuk menyimpan data user beserta atribute nya harus di pindah ke mysql/oracle. menjadi tantangan tersendiri saat freeradius menggunakan database oracle 😀 :D. setelah beberapa hari bergelut dengan freeradius+oracle & migrasi IP Transit, akhirnya jalan juga radius nya :D. freeradius yang saya gunakan menggunakan freeradius-server-2.2.5. pastikan Oracle Instant Client sudah terinstall di server mu.
Data Teknis :
oracle enterprise linux 6.5
freeradius 2.2.5
oracle instant client 11.2 (basic & devel ) : oracle-instantclient11.2-basic-11.2.0.2.0-1.x86_64 & oracle-instantclient11.2-devel-11.2.0.2.0-1.x86_64
instalasi dan konfigurasi nya sebagai berikut :
OCI client
- rpm -ivh oracle-instantclient11.2-devel-11.2.0.2.0-1.x86_64.rpm oracle-instantclient11.2-basic-11.2.0.2.0-1.x86_64.rpm
Freeradius :
- tar xjvf freeradius-server-2.2.5.tar.gz
- cd freeradius-server-2.2.5
- ./configure –prefix=/usr/raddb
- make
freeradius rlm_sql_oracle module instalation :
- cd /root/freeradius-server-2.2.5/src/modules/rlm_sql/drivers/rlm_sql_oracle/
- ./configure –with-oracle-lib-dir=/usr/lib/oracle/11.2/client64/lib –with-oracle-include-dir=/usr/include/oracle/11.2/client64
- make
back to freeradius source directory dan lakukan perintah berikut ini :
- cd /root/freeradius-server-2.2.5
- make install
kalo udah ga ada error, berarti freeradius sudah siap digunakan. untuk memastikan bahwa module rlm_sql_oracle sudah terload, cek di direktori /usr/raddb2/lib. bahwa modul rlm_sql_oracle sudah integrate ke freeradius server outputnya adalah seperti dibawah ini :
[root@ihik ~]# ls /usr/raddb2/lib/rlm_sql_oracle*
/usr/raddb2/lib/rlm_sql_oracle-2.2.5.la /usr/raddb2/lib/rlm_sql_oracle.a /usr/raddb2/lib/rlm_sql_oracle.so
/usr/raddb2/lib/rlm_sql_oracle-2.2.5.so /usr/raddb2/lib/rlm_sql_oracle.la
konfigurasi agar freeradius menggunakan database oracle adalah sebagai berikut :
buka file radiusd.conf . ubah bagian
- #$INCLUDE sql.conf
menjadi
- $INCLUDE sql.conf
buka /usr/raddb2/etc/raddb/sites-enabled/default, uncomment bagian dibawah ini
- # See “Authorization Queries” in sql.conf
#sql
menjadi
- # See “Authorization Queries” in sql.conf
sql
kemudian bagian
- # See “Accounting queries” in sql.conf
#sql
menjadi
- # See “Accounting queries” in sql.conf
sql
kemudian bagian
- # See “Simultaneous Use Checking Queries” in sql.conf
#sql
menjadi
- # See “Simultaneous Use Checking Queries” in sql.conf
sql
pada bagian sql.conf, rubah menjadi seperti di bawah ini :
sql {
#
# Set the database to one of:
#
# mysql, mssql, oracle, postgresql
#
database = “oracle”
#
# Which FreeRADIUS driver to use.
#
driver = “rlm_sql_${database}”
# Connection info:
server = “ORACLE_DB_SERVER_IP_ADDRESS”
port = 1521
login = “USERNAME”
password = “PASSWORD”
# Database table configuration for everything except Oracle
#radius_db = “radius”
# If you are using Oracle then use this instead
radius_db = ” (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE_DB_SERVER_IP_ADDRESS)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = YOUR_ORACLE_SID) ) )”
# If you want both stop and start records logged to the
setelah itu jalankan freeradius server nya, kalo outputnya seperti dibawah ini :
rlm_sql (sql): starting 0
rlm_sql (sql): Attempting to connect rlm_sql_oracle #0
rlm_sql (sql): Connected new DB handle, #0
rlm_sql (sql): starting 1
rlm_sql (sql): Attempting to connect rlm_sql_oracle #1
rlm_sql (sql): Connected new DB handle, #1
rlm_sql (sql): starting 2
rlm_sql (sql): Attempting to connect rlm_sql_oracle #2
rlm_sql (sql): Connected new DB handle, #2
rlm_sql (sql): starting 3
rlm_sql (sql): Attempting to connect rlm_sql_oracle #3
rlm_sql (sql): Connected new DB handle, #3
rlm_sql (sql): starting 4
rlm_sql (sql): Attempting to connect rlm_sql_oracle #4
rlm_sql (sql): Connected new DB handle, #4
rlm_sql (sql): starting 5
congrat udah bisa konek 😀 😀