Solusi Mencegah Login Ganda di Easyhotspot

Access denied because username already logged in

Bagi anda yang mengikuti tutorial tentang installasi Easyhotspot di Ubuntu 10.04 Server Edition yang pernah saya tulis sebelumnya di sini, kemungkinan besar anda akan mengalami masalah simultaneous use dan case sensitive dimana username yang anda buat akan bisa digunakan untuk login di dua mesin secara bersamaan. Masalah ini baru ketahuan setelah beberapa kali memergoki user di hotspot yang saya kelola bisa login dengan mengganti username mereka menggunakan huruf kapital semua dan setelah mencoba sendiri, ternyata menggunakan username yang sama persis pun tetap bisa login bersamaan.
Setelah bingung selama dua hari dua malem, tanya sama mbah google pun gak dapet solusinya, akhirnya stream saya di ndra16@Koprol dijawab oleh mas vcool dengan memberikan solusi seperti dibawah

buka file /etc/freeradius/sql/mysql/dialup.conf
untuk membuat login menjadi case sensitive (sesuai username yang kita buat)
Cari :

# The default queries are case insensitive. (for compatibility with
# older versions of FreeRADIUS)
authorize_check_query = “SELECT id, username, attribute, value, op \
FROM ${authcheck_table} \
WHERE username = ‘%{SQL-User-Name}’ \
ORDER BY id”
authorize_reply_query = “SELECT id, username, attribute, value, op \
FROM ${authreply_table} \
WHERE username = ‘%{SQL-User-Name}’ \
ORDER BY id”

# Use these for case sensitive usernames.
#    group_membership_query = “SELECT groupname \
#         FROM ${usergroup_table} \
#         WHERE username = BINARY ‘%{SQL-User-Name}’ \
#         ORDER BY priority”

group_membership_query = “SELECT groupname \
FROM ${usergroup_table} \
WHERE username = ‘%{SQL-User-Name}’ \
ORDER BY priority”

ubah menjadi :

# The default queries are case insensitive. (for compatibility with
# older versions of FreeRADIUS)
authorize_check_query = “SELECT id, username, attribute, value, op \
FROM ${authcheck_table} \
WHERE BINARY(username) = ‘%{SQL-User-Name}’ \
ORDER BY id”
authorize_reply_query = “SELECT id, username, attribute, value, op \
FROM ${authreply_table} \
WHERE BINARY(username) = ‘%{SQL-User-Name}’ \
ORDER BY id”

# Use these for case sensitive usernames.
#    group_membership_query = “SELECT groupname \
#         FROM ${usergroup_table} \
#         WHERE username = BINARY ‘%{SQL-User-Name}’ \
#         ORDER BY priority”

group_membership_query = “SELECT groupname \
FROM ${usergroup_table} \
WHERE BINARY(username) = ‘%{SQL-User-Name}’ \
ORDER BY priority”

Untuk mencegah login ganda dalam waktu bersamaan, cari :

# Uncomment simul_count_query to enable simultaneous use checking
#simul_count_query = “SELECT COUNT(*) \
# FROM ${acct_table1} \
#WHERE username = ‘%{SQL-User-Name}’ \
#AND acctstoptime IS NULL”

simul_verify_query  = “SELECT radacctid, acctsessionid, username, \
nasipaddress, nasportid, framedipaddress, \
callingstationid, framedprotocol \
FROM ${acct_table1} \
WHERE username = ‘%{SQL-User-Name}’ \
AND acctstoptime IS NULL”

ubah menjadi :

# Uncomment simul_count_query to enable simultaneous use checking
simul_count_query = “SELECT COUNT(*) \
FROM ${acct_table1} \
WHERE BINARY(username) = ‘%{SQL-User-Name}’ \
AND acctstoptime IS NULL”

simul_verify_query  = “SELECT radacctid, acctsessionid, username, \
nasipaddress, nasportid, framedipaddress, \
callingstationid, framedprotocol \
FROM ${acct_table1} \
WHERE BINARY(username) = ‘%{SQL-User-Name}’ \
AND acctstoptime IS NULL”

Simpan file tersebut dan restart server anda, atau anda juga bisa hanya me-restart freeradius anda dengan perintah :

$/etc/init.d/freeradius stop
$/usr/sbin/freeradius

Semoga bermanfaat.

6 thoughts on “Solusi Mencegah Login Ganda di Easyhotspot

    • Lucid saya emang 10.04.1 mas, cuma gak merhatiin sejak kapan, karena baru belakangan sempat ngeliat ternyata ada user yg bisa login dengan dua mesin bersamaan

    • Sepertinya tidak, saat saya mencoba versi distro sekitar 6bln yg lalu simultaneous use berjalan dengan baik. Ini hanya untuk yang install sendiri menggunakan versi web only seperti yang saya tulis tutorialnya di blog saya ini.

Leave a Reply

Your email address will not be published. Required fields are marked *