radius+sql+user+client配置模块详细说Word文档下载推荐.docx
《radius+sql+user+client配置模块详细说Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《radius+sql+user+client配置模块详细说Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
让服务器监听某个IP,并且从次IP发送相应信息.主要是为了服务器同时具有多服务器时候使用.
bind_address=*
可以指定raidus的使用端口号,使用0表示使用默认的radius端口,在配置文件/etc/services配置.
port=0
如果需要服务器同时监听其他的IP,可以用listen块.下面是例子
#listen{
#IPaddressonwhichtolisten.
#Allowedvaluesare:
#dottedquad(1.2.3.4)
#hostname()
#wildcard(*)
#ipaddr=*
#Portonwhichtolisten.
#integerportnumber(1812)
#0means"
use/etc/servicesfortheproperport"
#port=0
#Typeofpacketstolistenfor.
#authlistenforauthenticationpackets
#acctlistenforaccountingpackets
#
#type=auth
#}
hostname_lookups大概是表示为NAS查找它的域名信息?
可以通过域名配置NAS?
hostname_lookups=no
是否允许coredumps.
allow_core_dumps=no
expressions支持,规则和扩展.
regular_expressions=yes
extended_expressions=yes
记录User-Name属性的全称.
log_stripped_names=no
是否记录认证请求信息到日志文件
log_auth=no
当请求被拒绝时记录密码,当请求正确时记录密码
log_auth_badpass=no
log_auth_goodpass=no
是否允许用户名冲突,即重复同用户同时登陆.强烈不建议启用重复用户.
usercollide=no
将用户名小写化,将密码小写化.
lower_user=no
lower_pass=no
是否去除用户名和密码中的空格
nospace_user=no
nospace_pass=no
程序执行并发检查(不理解含义)
checkrad=${sbindir}/checkrad
安全配置域
security{
指在Radius包中的最大属性数目.设置为0表示无穷大.
max_attributes=200
发送Access-Reject包时候,可以设置一定的延迟,以缓慢DOS攻击,也可以缓慢穷举破解用户名和密码的攻击
reject_delay=1
服务器是否对状态服务器的请求信息进行相应.
status_server=no
}
PROXYCONFIGURATION
代理域.
是否开启代理服务,具体配置参照${confdir}/proxy.conf
proxy_requests=yes
$INCLUDE${confdir}/proxy.conf
Clients配置
$INCLUDE${confdir}/clients.conf
是否启用snmp配置,具体配置文件在snmp.conf
snmp=no
$INCLUDE${confdir}/snmp.conf
线程池配置域
threadpool{
启动时服务的个数.(在启动Mysql模块后可以明显看到.)当同时进行的请求数超过5个时,会增加线程服务.
start_servers=5
最大的服务数
max_servers=32
当少于最少空闲服务时,它会建立服务,大于最大空闲服务时会停止多余的服务.最少空闲服务,与最大空闲服务.
min_spare_servers=3
max_spare_servers=10
每个server最大的请求数.当有内存漏洞时,可能需要配置.
max_requests_per_server=0
1.3模块配置
1.3.1PAP模块
#Supportsmultipleencryptionschemes支持多种加密方式
#clear:
Cleartext明文
#crypt:
UnixcryptUnix加密
#md5:
MD5ecnryptionMD5加密
#sha1:
SHA1encryption.SHA1加密
#DEFAULT:
crypt默认是Unix加密
pap{
encryption_scheme=crypt
1.3.2CHAP模块
chap{
authtype=CHAP
1.3.3PAM模块
PAM模块(PAM)是行业标准验证框架,鉴于很多系统的PAM库都有内存漏洞,所以不建议使用。
pam{
pam_auth=radiusd
1.3.4UNIX系统用户的认证模块
unix{
cache=no
cache_reload=600
#passwd=/etc/passwd
#shadow=/etc/shadow
#group=/etc/group
radwtmp=${logdir}/radwtmp
1.3.5EAP模块
详细见${confdir}/eap.conf
$INCLUDE${confdir}/eap.conf
1.3.6MSCHAP模块
mschap{
#use_mppe=no
#require_encryption=yes
#require_strong=yes
#为了纠正window发送chap时有时包括域,有时又不包括域的信息.
#with_ntdomain_hack=no#ntlm_auth="
/path/to/ntlm_auth–request-nt-key–username=%{Stripped-User-Name:
-%{User-Name:
-None}}–challenge=%{mschap:
Challenge:
-00}–nt-response=%{mschap:
NT-Response:
-00}"
1.3.7LDAP配置模块
LDAP模块只能在Access-Requestpacket中包含明文密码属性才可以被使用。
LDAP认证不能在其他任何认证方法中使用。
具体配置详见下属章节。
(参看doc/rlm_ldap)。
1.3.8passwd模块
Passwd模块允许通过任何passwd样式的文件进行授权,并可以从这些模块中提取属性信息。
smbpasswd例子
#passwdetc_smbpasswd{
#filename=/etc/smbpasswd
#format="
*User-Name:
:
LM-Password:
NT-Password:
SMB-Account-CTRL-TEXT:
"
#authtype=MS-CHAP
#hashsize=100
#ignorenislike=no
#allowmultiplekeys=no
#passwdetc_group{
#filename=/etc/group
=Group-Name:
*,User-Name"
#hashsize=50
#ignorenislike=yes
#allowmultiplekeys=yes
#delimiter="
1.3.9Realm模块
应用在代理上.Youcanhavemultipleinstancesoftherealmmoduletosupportmultiplerealmsyntaxsatthesametime.Thesearchorderisdefinedbytheorderintheauthorizeandpreacctsections.
realmIPASS{
format=prefix
delimiter="
/"
ignore_default=no
ignore_null=no
#‘username@realm’
realmsuffix{
format=suffix
@"
#‘username%realm’
realmrealmpercent{
%"
#‘domain\user’
realmntdomain{
\\"
1.3.10简单值检查模块(checkval)
Itcanbeusedtocheckifanattributevalueintherequestmatchesa(possiblymultivalued)attributeinthecheckitemsThiscanbeusedforexampleforcaller-idauthentication.Forthemoduletorun,boththerequestattributeandthecheckitemsattributemustexist.
checkval{
#Theattributetolookforintherequest
#Request包中查找的属性名称
item-name=Calling-Station-Id
#Theattributetolookforincheckitems.Canbemultivalued
#Check表中查找的属性名称
check-name=Calling-Station-Id
#Thedatatype.Canbe
#数据类型的种类
#string,integer,ipaddr,date,abinary,octets
data-type=string
#Ifsettoyesandwedontfindtheitem-nameattributeinthe
#requestthenwesendbackareject
#如果设置为yes,我们不在request包中查找属性名称直接发送reject.
#DEFAULTisno
#notfound-reject=no
1.3.11从写属性模块(attr_rewrite)
从写任何包,在认证和计费时都很有用.在拿到包后,可以从写包里属性的内容.
#attr_rewritesanecallerid{
#attribute=Called-Station-Id
#maybe"
packet"
,"
reply"
proxy"
proxy_reply"
or"
config"
#searchin=packet
#searchfor="
[+]"
#replacewith="
#ignore_case=no
#new_attribute=no
#max_matches=10
###Ifsettoyesthenthereplacestringwillbeappendedtotheoriginalstring
#append=no
1.3.12预处理radius请求模块(preprocess)
预处理Radius请求,在交付其他模块处理前.包含这两个配置文件.可以从写那些由一些NAS添加的很奇怪的属性.然后把这些属性转换到一个形态。
参见第二章。
配置实例:
preprocess{
huntgroups=${confdir}/huntgroups
hints=${confdir}/hints
with_ascend_hack=no
ascend_channels_per_line=23
with_ntdomain_hack=no
with_specialix_jetstream_hack=no
with_cisco_vsa_hack=no
1.3.13用户文件模块(files)
files{
usersfile=${confdir}/users
acctusersfile=${confdir}/acct_users
preproxy_usersfile=${confdir}/preproxy_users
compat=no
1.3.14日志信息记录模块(detail)
将计费信息详细记录到文件上,按照设定时间,每隔一个时段生成一个新文件记录.
detail{
detailfile=${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
detailperm=0600
#suppress{
#User-Password
将认证信息详细记录到文件上,按照设定时间,每隔一个时段生成一个新文件记录.
detailauth_log{
detailfile=${radacctdir}/%{Client-IP-Address}/auth-detail-%Y%m%d
ThisMUSTbe0600,otherwiseanyonecanread
theuserspasswords!
将相应(Reply)信息详细记录到文件上,按照设定时间,每隔一个时段生成一个新文件记录
detailreply_log{
detailfile=${radacctdir}/%{Client-IP-Address}/reply-detail-%Y%m%d
Thismodulelogspacketsproxiedtoahomeserver.
detailpre_proxy_log{
detailfile=${radacctdir}/%{Client-IP-Address}/pre-proxy-detail-%Y%m%d
Thismodulelogsresponsepacketsfromahomeserver.
detailpost_proxy_log{
detailfile=${radacctdir}/%{Client-IP-Address}/post-proxy-detail-%Y%m%d
1.3.15SQL日志记录模块(sql_log)
Therlm_sql_logmoduleappendstheSQLqueriesinalogfilewhichisreadlaterbytheradsqlrelayprogram.
它只是将sql语句写到文件里,而后由radsqlrelay程序读取.
参看
1.3.16计费唯一sessionid模块
针对NAS不停重复Acct-Session-Idvalues造成混淆的问题,建立唯一的计费sessionid
acct_unique{
key="
User-Name,Acct-Session-Id,NAS-IP-Address,Client-IP-Address,NAS-Port"
1.3.17SQL模块
通过$INCLUDE来把数据库的模块的配置文件链接进来.
#ThefollowingconfigurationfileisforusewithMySQL.
#ForPostgresql,use:
${confdir}/postgresql.conf
#ForMS-SQL,use:
${confdir}/mssql.conf
#ForOracle,use:
${confdir}/oraclesql.conf
$INCLUDE${confdir}/sql.conf
1.3.18Radutmp模块
记录了那些在线用户的用户名,以及他们从哪里登陆的信息.
实例1radutmp
radutmp{
filename=${logdir}/radutmp
username=%{User-Name}
case_sensitive=yes
check_with_nas=yes
perm=0600
callerid="
yes"
实例2"
Safe"
radutmp
radutmpsradutmp{
filename=${logdir}/sradutmp
perm=0644
no"
1.3.19属性过滤模块
属性过滤模块,过滤从代理raidus服务器那里收到响应信息里的属性,来确保我们可以发送回给我们的Radius客户端,详细见attrs配置文件.
attr_filter{
attrsfile=${confdir}/attrs
1.3.20计数模块
从计费包信息中拿去一个属性及它的值,统计这个属性不同值的总数.
counterdaily{
filename=${raddbdir}/db.daily
key=User-Name
count-attribute=Acct-Session-Time
reset=daily
counter-name=Daily-Session-Time
check-name=Max-Daily-Session
allowed-servicetype=Framed-User
cache-size=5000
1.3.21SQL计数模块
该模块所需要的信息都储存raddacct表中。
它并不进行在数据库中插入数据项和更新数据项,它完全依赖SQL模块来处理计费信息包。
(具体请参照SQL模块配置分析第七章)
例1
sqlcounterdailycounter{
sqlmod-inst=sql
query="
SELECTSUM(AcctSessionTime-\
GREATEST((%b-UNIX_TIMESTAMP(AcctStartTime)),0))\
FROMradacctWHEREUserName=’%{%k}’AND\
UNIX_TIMESTAMP(AcctStartTime)+AcctSessionTime>
‘%b’"
例2
sql