Ubuntu + FreeRadius + MySQL

Membuat radius server untuk kebutuhan mikrotik hotspot. Pada tutor ini, menggunakan Ubuntu 8.10 dengan package FreeRadius dan MySQL Server yang di dapat dari repository. Selain itu juga akan dilengkapi dengan Apache 2, PHP 5 dan PHPMyAdmin.
    Asumsi bahwa OS Ubuntu 8.10 sudah terinstall dan terkoneksi dengan jaringan internet. Selanjutnya adalah installasi semua package yang dibutuhkan.
  • Install semua package melalui repository dan isi konfigurasi yang diminta

    # apt-get install apache2 php5-common php5-gd php-pear php-db libapache2-mod-php5 php5-mysql php5-mcrypt phpmyadmin mysql-server-5.0 mysql-client-5.0 freeradius freeradius-mysql

  • Untuk konfigurasi apache2, php5 dan mysql-server-5 dan phpmyadmin dapat dicari diinternet.
    Selanjutnya adalah konfigurasi untuk freeradius
  • Buat database radius pada mysql-server dan usernya

    # mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 693
    Server version: 5.0.67-0ubuntu6 (Ubuntu)

    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

    mysql> create database radius;
    Query OK, 1 row affected (0.00 sec)

    mysql> grant all on radius.* to radius@localhost identified by “passwordradius”;
    Query OK, 0 rows affected (0.00 sec)

    mysql> exit
    Bye

  • Sehubungan menggunakan freeradius 2.x, maka konfigurasi agak berbeda dengan freeradius 1.x. Lalu import table yang berada pada file /etc/freeradius/sql/mysql/schema.sql ke database radius

    # mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql
    Enter password:

  • Buat table agar konfigurasi nas dapat ditambahkan pada database. Pengertian NAS dapat dilihat pada website http://wiki.freeradius.org/NAS

    # mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 693
    Server version: 5.0.67-0ubuntu6 (Ubuntu)

    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

    mysql> use radius;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> CREATE TABLE nas (id int(10) NOT NULL auto_increment, nasname varchar(128) NOT NULL, shortname varchar(32), type varchar(30) DEFAULT ‘other’, ports int(5), secret varchar(60) DEFAULT ‘secret’ NOT NULL, community varchar(50), description varchar(200) DEFAULT ‘RADIUS Client’, PRIMARY KEY (id), KEY nasname (nasname));
    Query OK, 0 rows affected (0.01 sec)

    mysql> exit
    Bye

  • Konfigurasikan /etc/freeradius/sql.conf agar dapat disesuaikan dengan perubahan yang sudah dilakukan
    # pico /etc/freeradius/sql.conf

    Pada connection info
    # Connection info:
    server = “localhost”
    login = “radius”
    password = “passwordradius”

    Uncomment pada readclients agar NAS dapat dibaca melalui database.
    readclients = yes

  • Selanjutnya mengubah file /etc/freeradius/sites-enabled/default
    # pico /etc/freeradius/sites-enabled/default

    Uncomment sql pada bagian authorize{}
    # See “Authorization Queries” in sql.conf
    sql

    Uncomment sql pada bagian accounting{}
    # See “Accounting queries” in sql.conf
    sql

    Uncomment sql pada bagian session{}
    # See “Simultaneous Use Checking Queries” in sql.conf
    sql

    Uncomment sql pada bagian post-auth{}
    # See “Authentication Logging Queries” in sql.conf
    sql

  • Tambahkan user untuk mengetest bahwa server radius sudah berjalan dengan baik

    # mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 693
    Server version: 5.0.67-0ubuntu6 (Ubuntu)

    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

    mysql> use radius;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES (‘sqltest’, ‘Password’, ‘testpwd’);
    Query OK, 1 row affected (0.00 sec)

    mysql> exit
    Bye

  • Pastikan bahwa konfigurasi radiusd.conf dalam keadaan benar, karena pada saat dicoba, terjadi masalah pada pid radiusnya
    # pico /etc/freeradius/radiusd.conf

    Ubah run_dir ke path berikut
    run_dir = ${localstatedir}/run/freeradius

    Ubah pidfile ke nama file berikut
    pidfile = ${run_dir}/freeradius.pid

  • Jalankan server radius. Apabila ingin menggunakan mode debug, maka dapat menggunakan perintah freeradius -X
    # /etc/init.d/freeradius start

    Apabila muncul tulisan “/etc/freeradius/sites-enabled/default[152]: Failed to find module “sql”.”, maka bisa meng uncomment #$INCLUDE sql.conf pada file /etc/freeradius/radiusd.conf

  • Jalankan test pada server radius localhost
    # radtest sqltest testpwd localhost 1812 testing123
    Sending Access-Request of id 9 to 127.0.0.1 port 1812
    User-Name = “sqltest”
    User-Password = “testpwd”
    NAS-IP-Address = 192.168.1.10
    NAS-Port = 1812
    rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=9, length=20

    Apabila tampilan seperti diatas, berarti client dapat terkoneksi dengan server radius. Apabila terdapat error, maka solusinya cari diinternet :D
    -Tambahan-
    Jika errornya adalah “radclient: socket: cannot initialize udpfromto: Function not implemented”, maka bisa menggunakan ip address ketimbang menggunakan localhost. Contoh : radtest sqltest testpwd 127.0.0.1 1812 testing123
    Jadi sebenarnya hanya masalah di /etc/hosts untuk IPv6 saja. Intinya service sudah jalan.

  • Hapus user test yang sudah dibuat sebelumnya
    # mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 699
    Server version: 5.0.67-0ubuntu6 (Ubuntu)

    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

    mysql> use radius;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> delete from radcheck where UserName=’sqltest’;
    Query OK, 1 row affected (0.00 sec)

    mysql> exit
    Bye

Selesai deh koneksi dari freeradius ke mysql … Ayo erwan ayooo … :P

Ref :
http://www.8021xhelp.com/node/6
http://solo.foss-id.web.id/2008/09/instalasi-freeradius-pada-ubuntu-server-804/
http://forum.rtrw.net/viewtopic.php?f=4&t=5784
http://www.howtoforge.com/forums/showthread.php?t=33503

http://hanadi.wordpress.com/2009/03/25/ubuntu-freeradius-mysql/#comment-221

freeradius

Share this

Related Posts

Previous
Next Post »