hackjun 发表于 2007-2-11 02:22:38

给使用freeradius来进行限制单账号登录的兄弟一点小提示

首先我先发一篇wendy兄的贴子(他论坛注册名应该是wendyzh):


freeradius限制1个用户同时登录失败的DX请看


以前有个DX问我的问题,当时太忙,现在我们也要拨号控制了,仔细察看了一下。通过修改配置文件达到要求,可以防止在用户名后加个空格就可以继续登陆的问题

主要修改1
radius.conf
#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数据库验证
}
主要修改2
sql.conf
# Uncomment simul_count_query to enable simultaneous use checking
      simul_count_query = "SELECT COUNT(*) FROM ${acct_table1} WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0"
                #启用simul_count_query
      simul_verify_query = "SELECT RadAcctId, AcctSessionId, UserName, NASIPAddress, NASPortId, FramedIPAddress, CallingStationId, FramedProtocol FROM ${acct_table1} WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0"



经我实验发现,freeradius-1.1.4.tar.gz会出现这样的现像:
   用Simultaneous-Use := 1 后,在radiusd.conf默认配置上,是无效的,用户仍然可以一个账号多次登录,不存在"用户名后加个空格就可
以继续登陆的问题",因为根本不加空格一样也可以多次同时登录。
   这样,我们这里用wendy兄的方法,进行修改radiusd.conf和sql.conf上述的两处地方。kill radiusd进程后再启动radius.这时你的
Simultaneous-Use := 1 才有效,只许一个账户同时只能登一次,你不管在用户名后加多少空格也没用。

呵呵,现在又到凌晨2点多了,这段时间为了弄ros和freeradius,熬了n个通宵,查阅了n多的资料,英文 的、中文的,由于英语不好,都 是开着词霸看的,呵呵,收获最多就是在bbs.vmware.cn和现在这个论坛了,在这里认识了几位高手,像wendy和huanggong887 还有一位qq名叫”悟“的兄弟,都是技术非常不错的,人也很热心。虽然他们在论坛里很 少发贴,但我还是很有缘的认识了他们,或多或少的得到了帮助,有时甚至一个提示都 会让我少走许多弯路,在此谢谢你们了。当然,还要感谢论坛里其它无私奉献,发过很多技术贴的兄弟们,这里真的很不错,很 有氛围。当然,我以后也会把这段时间积累的经验贡献给大家,让更多的新人尽快的上手。。晚安。。

    再次感谢wendy今天下午(应该是昨天下午了。)给我的帮助,现在我东东基本上算弄完了。呵呵。

udata008 发表于 2007-2-11 12:50:08

但有时候想找个失去联系的人却很难很难

efme 发表于 2009-7-13 06:54:58

太强了,LZ

本人弄了N+1个通宵,可什么结果都还没有

ljwhf 发表于 2009-11-26 21:12:48

在freeradius中设置过滤空格,要不就用sql中的去除空格函数滤掉也成。

ynduck 发表于 2010-3-24 11:17:22

问题是 PPP Authention & Accounting 必须2个都选上。
页: [1]
查看完整版本: 给使用freeradius来进行限制单账号登录的兄弟一点小提示