Temps de connexion avec freeradius
yaobo84
Messages postés
107
Statut
Membre
-
Jakscoreur74 Messages postés 45 Statut Membre -
Jakscoreur74 Messages postés 45 Statut Membre -
bonjour,
j'ai un portail captif tournant sous coova-chilli et freeradius (je n'utilise pas les outils genre phpmyprepaid ou daloradius....). Je voudrais donc deconnecter authomatiquement mes utilisateur apres X heures.
voici mon fichier /etc/freeradius/sql/mysql/conunter.conf
Le preobleme c'est que les utilisateurs ne sont jamais deconnectés. Quelqu"un comprend comment faire?
j'ai un portail captif tournant sous coova-chilli et freeradius (je n'utilise pas les outils genre phpmyprepaid ou daloradius....). Je voudrais donc deconnecter authomatiquement mes utilisateur apres X heures.
voici mon fichier /etc/freeradius/sql/mysql/conunter.conf
sqlcounter dailycounter {
counter-name = Daily-Session-Time
check-name = Max-Daily-Session
reply-name = Session-Timeout
sqlmod-inst = sql
key = User-Name
reset = daily
# This query properly handles calls that span from the
# previous reset period into the current period but
# involves more work for the SQL server than those
# below
query = "SELECT SUM(acctsessiontime - \
GREATEST((%b - UNIX_TIMESTAMP(acctstarttime)), 0)) \
FROM radacct WHERE username = '%{%k}' AND \
UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%b'"
# This query ignores calls that started in a previous
# reset period and continue into into this one. But it
# is a little easier on the SQL server
# query = "SELECT SUM(acctsessiontime) FROM radacct WHERE \
# username = '%{%k}' AND acctstarttime > FROM_UNIXTIME('%b')"
# This query is the same as above, but demonstrates an
# additional counter parameter '%e' which is the
# timestamp for the end of the period
# query = "SELECT SUM(acctsessiontime) FROM radacct \
# WHERE username = '%{%k}' AND acctstarttime BETWEEN \
# FROM_UNIXTIME('%b') AND FROM_UNIXTIME('%e')"
}
sqlcounter monthlycounter {
counter-name = Monthly-Session-Time
check-name = Max-Monthly-Session
reply-name = Session-Timeout
sqlmod-inst = sql
key = User-Name
reset = monthly
# This query properly handles calls that span from the
# previous reset period into the current period but
# involves more work for the SQL server than those
# below
query = "SELECT SUM(acctsessiontime - \
GREATEST((%b - UNIX_TIMESTAMP(acctstarttime)), 0)) \
FROM radacct WHERE username='%{%k}' AND \
UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%b'"
# This query ignores calls that started in a previous
# reset period and continue into into this one. But it
# is a little easier on the SQL server
# query = "SELECT SUM(acctsessiontime) FROM radacct WHERE \
# username='%{%k}' AND acctstarttime > FROM_UNIXTIME('%b')"
# This query is the same as above, but demonstrates an
# additional counter parameter '%e' which is the
# timestamp for the end of the period
# query = "SELECT SUM(acctsessiontime) FROM radacct \
# WHERE username='%{%k}' AND acctstarttime BETWEEN \
# FROM_UNIXTIME('%b') AND FROM_UNIXTIME('%e')"
}
sqlcounter noresetcounter {
counter-name = Max-All-Session-Time
check-name = Max-All-Session
sqlmod-inst = sql
key = User-Name
reset = never
query = "SELECT IFNULL(SUM(AcctSessionTime),0) FROM radacct WHERE UserName='%{%k}'"
}
voici celui de /etc/freeradius/modules/counter
counter daily {
filename = ${db_dir}/db.daily
key = User-Name
count-attribute = Acct-Session-Time
reset = daily
counter-name = Daily-Session-Time
check-name = Max-Daily-Session
reply-name = Session-Timeout
allowed-servicetype = Framed-User
cache-size = 5000
}
Le preobleme c'est que les utilisateurs ne sont jamais deconnectés. Quelqu"un comprend comment faire?
A voir également:
- Temps de connexion avec freeradius
- Gmail connexion - Guide
- Connexion chromecast - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Combien de temps reste une story sur facebook - Guide
- Formate pour taxer connexion internet ✓ - Forum Matériel & Système
1 réponse
Bonjour Yaobo84,
Comme tu utilise Coovachilli, je te conseille simplement d'utiliser une de ses fonctionnalité de déconnexion dans le fichier /etc/chilli/config
la ligne (a dé-commenter):
- HS_DEFIDLETIMEOUT= 3600 te permet de déconnecter tes utilisateurs au bout d'une heure (3600sec).
Tu peux évidemment utiliser le module Counter de freeradius mais c'est ici bien plus compliqué car tu dois jouer sur plusieurs entrées de la table Radius...
Voila voila :)
Comme tu utilise Coovachilli, je te conseille simplement d'utiliser une de ses fonctionnalité de déconnexion dans le fichier /etc/chilli/config
la ligne (a dé-commenter):
- HS_DEFIDLETIMEOUT= 3600 te permet de déconnecter tes utilisateurs au bout d'une heure (3600sec).
Tu peux évidemment utiliser le module Counter de freeradius mais c'est ici bien plus compliqué car tu dois jouer sur plusieurs entrées de la table Radius...
Voila voila :)