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 😀
    -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 … 😛

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

freeradius

Iklan
Ditulis dalam Tutorial. 34 Comments »

34 Tanggapan to “Ubuntu + FreeRadius + MySQL”

  1. ramon Says:

    Wah mas,trima kasih yang sebesar- besarnya atas tutorialnya,sangat membantu saya mengerjakan Tugas Akhir saya.
    Turorial begini nih yang bisa buat bangsa indonesia maju.
    Tutorialnya lengkap dan jelas banget.Semoga tambah jaya mas ,smoga tutorialnya tambah banyak dan dikenal hehehe.

    Thanks A Lot..

  2. erbito Says:

    tutorial gini memajukan anak bangsa, thanks fro sharing..

  3. Lenyah Says:

    Mas, saya punya koneksi internet 2 1 astinet dan 1 lagi speedy, Saya mau menggabungkan kedua koneksi tersebut (bukan load balacing) dengan mode hotspot+dhcp (hotspot 1 dan hotspot 2). Tetapi selalu tidak berhasil ketika di user pada server profile nya hotspot2 (speedy) Radius not responding katanya. Apa berarti dibutuhkan radius eksternal????

    Kedua: Ketika kita setting hotspot2 (dengan subnet berbeda dgn hotspot1) bagaimana dengan dhcp-poolnya apa kita arahkan dhcp-pool pada hotspot1 atau buat dhcp-pool baru (ekternal atau internal)……….?

    Terima kasih dan mohon pencerahannya.
    Wendi Andriansyah

  4. mas haryo Says:

    mas koq ad tulisan gini radclient: socket: cannot initialize udpfromto: Function not implemented

  5. sarifz354 Says:

    Maaf tanya donk,
    saat jalankan sintax di bawah ini kok g bisa yahhh??

    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));

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘other’, ports int(5), secret varchar(60) DEFAULT ’secret’ NOT NULL, com’ at line 1

    Mohon pencerahan,
    saya pakai ubuntu 9.10
    Terima kasih…

    • hanadi Says:

      oic .. hmm .. klo itu mah .. karena syntax sqlnya ada yang salah
      ..
      coba ganti tanda ” ` ” menjadi single quote ” ‘ ” .. ato cek-cek perintah dasar sql deh ..
      dan klo bisa jangan asal copy paste dari web ajah .. karena kadang ada karakter-karakter yang berubah ..

  6. anton Says:

    untuk testing, freeradius nya udah jalan
    gmn yah?…

    interface yg muncul seperti apa?

    trim’s

    • hanadi Says:

      dengan menggunkan perintah radtest itu tadi ..
      radtest sqltest testpwd localhost 1812 testing123

      apabila nanti ada tulisan Access-Accept .. maka freeradius nya dah jalan
      rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=9, length=20

      jadi tidak ada interface lain yang muncul kecuali yang sudah ada

  7. anton Says:

    klo hasil nya malah:
    Access-Accept

    rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=76, length=20

    apa nya yg salah?
    ada yg kurang kah?

    • hanadi Says:

      rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=76, length=20
      di reject tuh .. brarti bisa jadi freeradiusnya blom jalan .. ato bisa jadi masalah di konfigurasi freeradiusnya salah

      klo mau tau masalahnya ada dimana .. coba di debug ajah freeradiusnya ..
      dengan menggunakan perintah freeradius -x

  8. bara Says:

    mas hanadi,
    terimakasih atas tutorialnya,sangat membantu saya,
    semoga banyak pahala yang pasti mas terima,
    omong2 sayan ada problem untuk ketika mengetest untuk radclientnya muncul seperti ini :

    radclient: no response from server for ID 44 socket 3

    kira2 ada yang kurang dimananya ya mas? 🙂
    mohon pencerahannya 🙂

  9. lolik Says:

    Sip mas..ternyata sumbernya dari web panjenengan ta…kemaren dapet turorial dari blog laen ternyata kurang maknyuss…pas lihat tutorial njenengan langsung jlungg….makasih mas…

    keep creative

  10. Nugraha Says:

    Mas aku udah berhasil tuh, kalau mau digabung sama YFi di ubuntu gmn y? buat bikin koneksi hotspot…

  11. Nugraha Says:

    Mas itu pas radtest kan masuking testing123, nah itu dari konfigurasi bagian mana? kalau mau diubah2 dimana?

  12. Edi Sujono Says:

    Saya coba keluar pessan error seperti ini :
    radtest edi edijuga 127.0.0.1 1812 testing123

    responsenya seperti di bawah ini :
    “radclient: no response from server for ID 207 socket 3″

    Mohon bantuannya.
    Thanks

  13. taqim Says:

    alhamdullillah berhasil mencoba. terima kasih atas tutorialnya

  14. jaya Says:

    thx, tutornya sangat membantu yg tadinya masih reject

  15. krisna Says:

    mas
    saya sudah coba semua dan jalan tapi kenapa waktu saya login dengan lebih dari 1 client, client2 yang lain tidak perlu login tapi langsung masuk karena menggunakan user client 1
    itu kenapa mas?
    mohon pencerahannya

  16. sri Says:

    ini web masih aktif kah?
    saya mau nanya ni, saya sedang mencoba percobaan ini. tp pas radtest respon nya:

    rina-AOD270 rina # radtest user 123456 127.0.0.1 1812 testing123
    Sending Access-Request of id 211 to 127.0.0.1 port 1812
    User-Name = “user”
    User-Password = “123456”
    NAS-IP-Address = 127.0.1.1
    NAS-Port = 1812
    rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=211, length=20

    pas saya debud freeradius -X nya ada terdapat error

    Failed binding to authentication address * port 1812: Address already in use
    /etc/freeradius/radiusd.conf[240]: Error binding to port for 0.0.0.0 port 1812

    mohon pencerahannya. terimaksih

    • hanadi Says:

      Itu berarti port sudah dipakai .. sebelum menjalankan freeradius bisa dicek dengan cara jalankan perintah nmap localhost
      Apabila muncul port 1812 maka bisa dipastikan bahwa port tersebut sudah terpakai oleh aplikasi lain

      • aprykribo007 Says:

        mas punya saya kaya bgni setelah nmap
        Nmap scan report for localhost (127.0.0.1)
        Host is up (0.000016s latency).
        Not shown: 995 closed ports
        PORT STATE SERVICE
        22/tcp open ssh
        80/tcp open http
        389/tcp open ldap
        631/tcp open ipp
        3306/tcp open mysql
        tidak ada muncul port 1812.. jadi ini gimana ya mas??? persoalanya sama seperti yang di alamai mba sri
        mksi

      • hanadi Says:

        untuk lebih pastinya telnet localhost 1812 .. apabila masuk maka port telah terpakai .. apabila tidak maka service nya belum dijalankan

  17. sri marina gusti Says:

    terimakasih mas… sekarang udh mau.
    mas bagaimana cara nya jika user manager pada mikrotik menggunakan data yang sudah ada pada mysql. (disini saya membuat tugas akhir dari data mahasiswa mas, klo dipindahkan semua ke userman mikrotik kan lama mas).
    mohon bantuannya mas.

  18. Sri Marina Gusti Says:

    ok mas brarti kita peke mysql radius. tp tetap page login nya menggunakan page login mikrotik kan mas?
    skrng aq pengen memodifikasi halaman login mikrotik dengan menambahkan link registrasi, nah form registrasi ny sudah aq buat menggunakan php mas, database yg digunakan mysql freeradius.
    aada tutorial untuk memanggil halaman registrasi itu g mas?
    mohon bantuan nya mas.


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: