Freeradius rlm_sql_oracle


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 :

  1. tar xjvf freeradius-server-2.2.5.tar.gz
  2. cd freeradius-server-2.2.5
  3. ./configure –prefix=/usr/raddb
  4. make

freeradius rlm_sql_oracle module instalation :

  1. cd /root/freeradius-server-2.2.5/src/modules/rlm_sql/drivers/rlm_sql_oracle/
  2. ./configure –with-oracle-lib-dir=/usr/lib/oracle/11.2/client64/lib –with-oracle-include-dir=/usr/include/oracle/11.2/client64
  3. make

back to freeradius source directory dan lakukan perintah berikut ini :

  1. cd /root/freeradius-server-2.2.5
  2. 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 😀 😀