Akagi201
8/3/2014 - 3:18 PM

freeradius-users.md

users文件是在freeradius的配置文件中, 默认定义user accounts.

users文件不是FreeRADIUS的唯一的user account information的来源, 他仅仅是最简单的一个.

起初的RADIUS服务器, 每个用户必须定义在这个文件里. 可以有一个default entry, 可以让你定义一个不在radius文件中的用户被checked against the UNIX password file and on successful login would get a PPP connection.

在新的风格的文件中, 你可以定义多个DEFAULT entries, 所有的entries按照他们在users文件中的出现的顺序处理. 如果一个entry匹配用户名, radiusd将会停止扫描users文件, 除非"Fall-Through = Yes"被设置了.

你可以在用户名中使用空格, 用过转义, 或者加引号.

freeRadius不会trim从portmaster接收到的用户名的任何空格( (livingston does, in perl notation, $user =~ s/s+.*//;))

Simultaneous-Use, integer, concurrent logins的最大数量. Fall-Through, integer, Yes/No. Login-Time, string, 当用户可能登录时定义, Current-Time, string, 允许你执行基于时间的check, 当一个request被接收到.

Login-Time定义一个用户可能登入进系统的时间跨度, 一个所谓的time string的格式跟UUCP使用的类似. 一个time string一些简单的time string的列表, 有"|"或者","分割.

每个time string必须以一个天的定义开始, 可以是仅仅一天, 多天, 或者一个范围天数用"-"连接, 一天可以是: Mo, Tu, We, Th, Fr, Sa or Su, or Wk for Mo-Fr, "Any" or "Al"表示全天.

然后, 接着是小时范围: hhmm-hhmm, 例如: "Wk2305-0855,Sa,Su2305-1655".

radiusd计算在time span中剩余的秒数, 并设置为Session-Timeout. 所以如果一个人的Login-Time是"Al0800-1800", 那么他在17:30登录,Session-Timeout被设置为1800秒, 所以他在18:00时被kick off.

为了赋给一个用户一个IP地址池的IP, 你需要有一个Pool-Name Attribute(记住他是CHECK item, 不是reply), 在相应的配置文件中, 或者在users文件, sql, 或者其他类型configuration schema.

DEFAULT Pool-Name := main_pool
       Fall-Through = Yes

当然你需要设置这个IP Pool modules之一, 来生效.

Refs

Refs