免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4341 | 回复: 4
打印 上一主题 下一主题

freeradius2.1.3 防止用户帐号重复登录 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之上海
日期:2016-05-05 09:45:14
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-06 13:28 |只看该作者 |倒序浏览

freeradius2.1.3 防止用户帐号重复登录
一、修改 etc/raddb/sites-enabled 目录中的default 及inner-tunnel 这两个文件中的
#  Session database, used for checking Simultaneous-Use. Either the radutmp
#  or rlm_sql module can handle this.
#  The rlm_sql module is *much* faster
session {
        #radutmp
        #原来使用的是radutmp文档
        #  See "Simultaneous Use Checking Querie" in sql.conf
        sql
        #现在采用sql数据库验证
}
二、修改etc/raddb/sql/mysql 目录下的 dialup.conf
# Uncomment simul_count_query to enable simultaneous use checking
   把     simul_count_query 这一组前的#号去掉     如下
simul_count_query = "SELECT COUNT(*) \
                            FROM ${acct_table1} \
                            WHERE username = '%{SQL-User-Name}' \
                             AND acctstoptime IS NULL"
   
三、进入MYSQL在radgroupcheck添加Simultaneous-Use:=1  命令如下
INSERT INTO `radgroupcheck` ( `id` , `GroupName` , `Attribute` , `op` , `Value` )
VALUES (
NULL , ’user’, ’Simultaneous-Use’, ’:=’, ’1’
);
注意user 为组名,这个改成你自己用的组名


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/249/showart_1919604.html

论坛徽章:
0
2 [报告]
发表于 2009-05-18 23:49 |只看该作者
# 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"


INSERT INTO `radius`.`radgroupcheck` (`groupname` ,`attribute` ,`op` ,`value` )VALUES ( 'user', 'Simultaneous-Use', ':=', '1');

使用同一账号登录的时候,在mysql的radacct表中发现如下情况!不知道是否正常?(我觉得这个不正常)。

mysql> select username,acctstarttime,acctstoptime from radacct where username="jsh";
+----------+---------------------+---------------------+
| username | acctstarttime       | acctstoptime        |
+----------+---------------------+---------------------+
| jsh      | 2009-05-19 07:34:57 | 2009-05-19 07:35:49 |
| jsh      | 2009-05-19 07:35:49 | NULL                           |
+----------+---------------------+---------------------+
2 rows in set (0.00 sec)

mysql>

sites-available/default

accounting {

                    radutmp
                    ...
                    sql
                    ....
   }
session {
    #radutmp
      sql
}

谢谢!请问这是什么问题。应该怎么处理?

freeradius 2.1.4
mysql-5.1.30
freebsd7.0

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之上海
日期:2016-05-05 09:45:14
3 [报告]
发表于 2009-05-19 11:48 |只看该作者
恩,,好像有时候会有问题!

论坛徽章:
0
4 [报告]
发表于 2009-05-19 11:54 |只看该作者
哪这种情况怎么处理呢?、、是不是没有起到限制重复登录的做用?

难道是radius的bug?还是我的配置有问题。

会不会是cisco的交换机方面配得有问题。

aaa authentication dot1x default group radius
aaa authorization network default group radius
aaa accounting send stop-record authentication failure
aaa accounting delay-start
aaa accounting dot1x default start-stop group radius
aaa accounting network default start-stop group radius

[ 本帖最后由 mousejsh 于 2009-5-19 11:57 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2010-01-17 08:37 |只看该作者

freeradius 2.1.8

使用了楼上的方法后,仍然不起作用阿,还算多台机器,相同帐号可以登录。。
发下配置文件:
#######################################################################
        # Simultaneous Use Checking Queries
        #######################################################################
        # simul_count_query        - query for the number of current connections
        #                        - If this is not defined, no simultaneouls use checking
        #                        - will be performed by this module instance
        # simul_verify_query        - query to return details of current connections for verification
        #                        - Leave blank or commented out to disable verification step
        #                        - Note that the returned field order should not be changed.
        #######################################################################

        # 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"

-----------------
mysql> select * from radgroupcheck;
+----+-----------+------------------+----+-------+
| id | groupname | attribute        | op | value |
+----+-----------+------------------+----+-------+
|  2 | user      | Simultaneous-Use | := | 1     |
+----+-----------+------------------+----+-------+
1 row in set (0.02 sec)

mysql>
------------------------
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP