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.

2016-08-06_075324
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:
2016-08-06_082437

2016-08-06_082616

Pages: 1 2

Comments are closed.