IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

limiter le temps de connexion avec freeradius


Sujet :

Sécurité

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 68
    Points : 45
    Points
    45
    Par défaut limiter le temps de connexion avec freeradius
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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 problème c'est que les utilisateurs ne sont jamais deconnectés. Quelqu"un comprend comment faire?

  2. #2
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Salut,

    Il faut que tu retournes un attribut Radius "Session-Timeout" lors de l'authentification avec la valeur en seconde de la duree de la session. Pour information, voila les attributs que ce portail supporte (en gros le dictionnaire IETF standard).

Discussions similaires

  1. limiter la bande passante avec freeradius+coovachilli
    Par yabo84 dans le forum Administration système
    Réponses: 2
    Dernier message: 24/07/2013, 16h59
  2. Réponses: 0
    Dernier message: 17/12/2008, 15h30
  3. limit et temps d'execution avec oracle et PHP
    Par dor_boucle dans le forum Oracle
    Réponses: 20
    Dernier message: 10/12/2005, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo