Impelementasi dan Konfigurasi Mikrotik Hotspot, Freeradius, Mysql, dan Ldap.
Mikrotik sebagai Hotspot Controller sudah banyak dipakai karena harga yang terjangkau dan konfigurasinya relatif mudah. Ada beberapa fitur authentication login yang bisa diterapkan pada server Hotspot Mikrotik antara lain menggunakan Internal User Profile, menggunakan Internal Radius, dan menggunakan Exsternal Radius.
Di sini saya akan menggabungkan fitur Hotspot Controller Mikrotik dengan External Radius yaitu Freeradius. Sedangkan di dalam Freeradius sendiri menggunakan fitur Mysql database dan LDAP Bind ke server LDAP. Aplikasi Freeradius ini saya install di dalam OS Freebsd 10.3.
Instalasi Konfigurasi Freeradius dan Mysql
Lakukan update port terlebih dahulu untuk mendapatkan source port terbaru kemudian install melalui port.
# portsnap fetch update # cd /usr/ports/net/freeradius3 # make install clean
Lanjutkan dengan instalasi database Mysql.
# cd /usr/ports/databases/mysql56-server/ # make install clean
Setelah selesai instalasi, start database mysql.
# /usr/local/etc/rc.d/mysql-server onestart
Rubah password root sekuritasnya menggunakan command berikut.
# mysql_secure_installation
Lakukan konfigurasi pada beberapa file freeradius.
# ee /usr/local/etc/raddb/sites-enabled/default
Cari pada bagian authorize , uncomment pada bagian sql dan ldap. pada bagian sql ditambahkan beberapa syntax untuk stopper pengaman.
authorize { .... sql if (notfound) { update control { Auth-Type := Reject Reply-Message = "belum terdaftar " } } ldap ..... }
Pada bagian authentication edit/ uncomment ldap menjadi seperti berikut.
authentication { .... Auth-Type LDAP { ldap } ..... }
Pada bagian session juga rubah/ uncomment sql.
session { ..... sql .... }
Pada bagian post-auth rubah/uncomment sql dan ldap.
post-auth { ..... sql ldap .... }
Enable modul ldap dan sql dengan membuat symlinks seperti berikut.
# cd /usr/local/etc/raddb/mods-enabled/ # ln -s /usr/local/etc/raddb/mods-available/sql sql # ln -s /usr/local/etc/raddb/mods-available/ldap ldap
Import schema database Mysql freeradius.
# cd /usr/local/etc/raddb/mods-config/sql/main/mysql/ # mysql -u root -p < setup.sql # mysql -u root -p < schema.sql
Edit file modul sql, sesuaikan dengan jenis database yang dipakai.
# ee /usr/local/etc/raddb/mods-enabled/sql
sql { ....... driver = "rlm_sql_mysql" dialect = "mysql" server = "dbhost" port = 3306 login = "dbuser" password = "dbpassword" radius_db = "radius" read_groups = no read_profiles = no ..... }
Edit file queries.conf untuk sedikit melakukan perubahan query pada bagian authorize_check_query dengan menambah value = ‘%{Calling-Station-Id}’. Tujuannya untuk melakukan limitasi mac yang boleh/ sesuai dengan table radcheck pada database radius.
# ee /usr/local/etc/raddb/mods-config/sql/main/mysql/queries.conf
authorize_check_query = "\ SELECT id, username, attribute, value, op \ FROM ${authcheck_table} \ WHERE username = '%{SQL-User-Name}' AND value = '%{Calling-Station-Id}' \ ORDER BY id"
Buka dan edit modul ldap sesuaikan dengan konfigurasi LDAP server yang akan dituju.
# ee /usr/local/etc/raddb/mods-enabled/ldap
ldap { ... server = '192.168.168.252' port = 389 identity = 'uid=zimbra,cn=admins,cn=zimbra' # ini sample saja password = passwordldapserver base_dn = 'ou=user,dc=college,dc=domain,dc=com' # sesuaikan dengan domain anda user { .... base_dn = 'ou=user,dc=college,dc=domain,dc=com' # sesuaikan dengan domain an filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})" # tujuannya untuk filter user ldap ..... ..... }
Ujicoba running freeradius dengan command debug.
# radiusd -X
Buka console baru coba lakukan testing untuk login ke freeradius, misal seperti berikut.
# radtest paijo 123paijostress localhost 1 testing123
Apabila user dan password yang dimasukkan memang sesuai dengan akun di ldap harusnya status yang muncul “Access-Accept“. Cek ulang kembali konfigurasi jika testing masih gagal.
Koneksikan / daftarkan Mikrotik hotspot sebagai client radius.
# ee /usr/local/etc/raddb/clients.conf
client mikrotik-hs { ipaddr = 192.168.168.254 secret = college22 nas_type = other }
Injectlah user paijo@college.domain.com ke database radius. Fungsinya untuk menambah attribute yang diinginkan. Agar mudah konek ke database radius menggunakan software bantu Navicat. Masukkan pada table radcheck dan radreply seperti berikut: