freeradius配置信息详解.docx
- 文档编号:9939025
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:22
- 大小:25.06KB
freeradius配置信息详解.docx
《freeradius配置信息详解.docx》由会员分享,可在线阅读,更多相关《freeradius配置信息详解.docx(22页珍藏版)》请在冰豆网上搜索。
freeradius配置信息详解
Radiusd.conf文件是freeradius的核心配置文件,其中设置了服务器的基本信息,配置文件与日志文件的环境变量,并详细配置freeradius模块所使用的信息,与认证和计费所使用模块的配置配置的变量定义的形式为${foo},他们就在这个文件上,并且不随请求到请求而改变.变量的格式参照variables.txt.
1.1环境变量此处定义其他配置文件以及目录的位置,也就是环境变量prefix=/usr/localexec_prefix=${prefix}sysconfdir=${prefix}/etclocalstatedir=${prefix}/varsbindir=${exec_prefix}/sbinlogdir=${localstatedir}/log/radiusraddbdir=${sysconfdir}/raddbradacctdir=${logdir}/radacct配置文件和日志文件的位置confdir=${raddbdir}run_dir=${localstatedir}/run/radiusd日志文件的信息,添加到如下配置文件的底部log_file=${logdir}/radius.log
1.2全局配置模块的位置由libdir来配置。
如果不能工作,那么你可以从新配置,从新Build源码,并且使用共享库pidfile:
WheretoplacethePIDoftheRADIUSserver.
pidfile=${run_dir}/radiusd.piduser/group如果有评论,服务器会运行用户/组启动它.修改用户/组,必须具有root权限启动服务器这里的含义是指定启动radius服务可以限定操作系统上的用户和组,但是不建议启动它.
#user=nobody
#group=nobody
最长请求时间(秒),这样的问题经常需要存在在应用SQL数据库时候,建议
设置为5秒到120秒之间.
max_request_time=30当请求超过最长请求时间的时候,可以设置服务器删除请求.
当你的服务在threaded(线程下)运行,或者线程池(threadpool)模式,建议这里设置为no.
但用threaded服务设置为yes时,有可能使服务器崩溃.delete_blocked_requests=no
在reply发送给NAS后的等待清空时间.建议2秒到10秒cleanup_delay=5
服务器的请求最大数,建议值256到无穷
max_requests=1024让服务器监听某个IP,并且从次IP发送相应信息.主要是为了服务器同时具有多服务器时候使用.
bind_address=*
可以指定raidus的使用端口号,使用0表示使用默认的radius端口,在配置文件/etc/services配置.
port=0
如果需要服务器同时监听其他的IP,可以用listen块.下面是例子#listen{
#IPaddressonwhichtolisten.
#Allowedvaluesare:
#wildcard(*)
#ipaddr=*
#Portonwhichtolisten.
#Allowedvaluesare:
#integerportnumber(1812)
#0means"use/etc/servicesfortheproperport"
#port=0
#Typeofpacketstolistenfor.
#Allowedvaluesare:
#authlistenforauthenticationpackets
#acctlistenforaccountingpackets
#type=auth
#}
hostname」OokuPS大概是表示为NAS查找它的域名信息?
可以通过域名配置
NAS?
hostname_lookuPs=no
是否允许coredumPs.
allow_core_dumPs=no
exPressions支持,规则和扩展.
regular_exPressions=yesextended_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=nonospace_pass=no程序执行并发检查(不理解含义)checkrad=${sbindir}/checkrad安全配置域security{
指在Radius包中的最大属性数目.设置为0表示无穷大.
max_attributes=200
发送ACCeSS-RejeCt包时候,可以设置一定的延迟,以缓慢DoS攻击,也可以缓慢穷举破解用户名和密码的攻击
rejeCt_delay=1服务器是否对状态服务器的请求信息进行相应.
StatuS_Server=no
}
PRoXYCoNFIGURATIoN
代理域.
是否开启代理服务,具体配置参照${Confdir}/proxy.Confproxy_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=3max_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=nocache_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}}
-ChalIenge=%{mschap:
ChalIenge:
-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
#format="=GrouP-Name:
:
:
*,USer-Name"
#haShSize=50
#ignoreniSlike=yeS
#alloWmultiPlekeyS=yeS
#delimiter=":
"#}
1.3.9Realm模块应用在代理上.Youcanhavemultipleinstancesoftherealmmoduletosupportmultiplerealmsyntaxsatthesametime.Thesearchorderisdefinedbytheorderintheauthorizeandpreacctsections.realmIPASS{format=prefixdelimiter="/"ignore_default=noignore_null=no
}
#‘username@realm'
#realmsuffix{format=suffixdelimiter="@"ignore_default=noignore_null=no}
#‘username%realm'
#realmrealmpercent{format=suffix
delimiter="%"ignore_default=noignore_null=no
}
#‘domainuser'
#
realmntdomain{format=prefixdelimiter="\\"ignore_default=noignore_null=no
}
Itcanbeusedtocheckifanattributevalueintherequestmatches
a(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
}
从写任何包,在认证和计费时都很有用.在拿到包后,可以从写包里属性的内容.
#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
#}
预处理Radius请求,在交付其他模块处理前.包含这两个配置文件.可以从写那些由一些NAS添加的很奇怪的属性.然后把这些属性转换到一个形态。
参见第二章。
配置实例:
preprocess{huntgroups=${confdir}/huntgroupshints=${confdir}/hintswith_ascend_hack=noascend_channels_per_line=23with_ntdomain_hack=nowith_specialix_jetstream_hack=nowith_cisco_vsa_hack=no
}
files{
usersfile=${confdir}/usersacctusersfile=${confdir}/acct_userspreproxy_usersfile=${confdir}/preproxy_userscompat=no
}将计费信息详细记录到文件上,按照设定时间,每隔一个时段生成一个新文件记录.
detail{
detailfile=${radacctdir}/%{Client-IP-Address}/detail-%Y%m%ddetailperm=0600
#suppress{
#User-Password
#}
}将认证信息详细记录到文件上,按照设定时间,每隔一个时段生成一个新文件记录.
detailauth_log{
detailfile=${radacctdir}/%{Client-IP-Address}/auth-detail-%Y%m%d
ThisMUSTbe0600,otherwiseanyonecanread
theuserspasswords!
detailperm=0600
}
将相应(Reply)信息详细记录到文件上,按照设定时间,每隔一个时段生成一个新文件记录
detailreply_log{
detailfile=${radacctdir}/%{Client-IP-Address}/reply-detail-%Y%m%dThisMUSTbe0600,otherwiseanyonecanread
theuserspasswords!
detailperm=0600
}
Thismodulelogspacketsproxiedtoahomeserver.
detailpre_proxy_log{
detailfile
${radacctdir}/%{Client-IP-Address}/pre-proxy-detail-%Y%m%d
ThisMUSTbe0600,otherwiseanyonecanreadtheuserspasswords!
detailperm=0600
}
Thismodulelogsresponsepacketsfromahomeserver.
detailpost_proxy_log{
detailfile
${radacctdir}/%{Client-IP-Address}/post-proxy-detail-%Y%m%d
ThisMUSTbe0600,otherwiseanyonecanreadtheuserspasswords!
detailperm=0600
}
Therlm_sql_logmoduleappendstheSQLqueriesinalogfilewhichisreadlaterbytheradsqlrelayprogram.
它只是将sql语句写到文件里,而后由radsqlrelay程序读取.
参看
针对NAS不停重复ACCt-SeSSion-ldValueS造成混淆的问题,建立唯一的计
费sessionid
aCCt_unique{
key="USer-Name,ACCt-SeSSion-ld,NAS-lP-AddreSS
Client-lP-AddreSS,NAS-Port"
}
通过$1NCLUD睐把数据库的模块的配置文件链接进来.
#ThefollowingConfigurationfileiSforuSewithMySQL.
#
#ForPoStgreSql,uSe:
${Confdir}/poStgreSql.Conf
#ForMS-SQL,uSe:
${Confdir}/mSSql.Conf
#ForOraCle,uSe:
${Confdir}/oraCleSql.Conf
$lNCLUDE${Confdir}/Sql.Conf
记录了那些在线用户的用户名,以及他们从哪里登陆的信息.
实例1radutmp
radutmp{
filename=${logdir}/radutmp
uSername=%{USer-Name}
CaSe_SenSitiVe=yeS
CheCk_with_naS=yeSperm=0600callerid="yes"
}
实例2"Safe"radutmp
radutmpsradutmp{
filename=${logdir}/sradutmp
perm=0644callerid="no"
}
属性过滤模块,过滤从代理raidus服务器那里收到响应信息里的属性,来确保我们可以发送回给我们的Radius客户端,详细见attrs配置文件.attr_filter{
attrsfile=${confdir}/attrs
}从计费包信息中拿去一个属性及它的值,统计这个属性不同值的总数.counterdaily{
filename=${raddbdir}/db.daily
key=User-Name
count-attribute=Acct-Session-Time
reset=daily
counter-name=Daily-Session-Timecheck-name=Max-Daily-Sessionallowed-servicetype=Framed-User
cache-size=5000}该模块所需要的信息都储存raddacct表中。
它并不进行在数据库中插入数据项和更新数据项,它完全依赖SQL模块来处理计费信息包。
(具体请参照SQL模块配置分析第七章)
例1
sqlcounterdailycounter{counter-name=Daily-Session-Timecheck-name=Max-Daily-Sessionsqlmod-inst=sqlkey=User-Namereset=daily
query="SELECTSUM(AcctSessionTime-\
GREATEST((%b-UNIX_TIMESTAMP(AcctStartTime)),0))\
FROMradacctWHEREUserName'=%{%k}'AND\
UNIX_TIMESTAMP(AcctStartTime)+AcctSessionTime>‘%b'"
}
例2
sqlcountermonthlycounter{counter-name=Monthly-Session-Timecheck-name=Max-Monthly-Session
sqlmod-inst=sqlkey=User-Name
reset=monthly
query="SELECTSUM(AcctSessionTime-\
GREATEST((%b-UNIX_TIMESTAMP(AcctStartTime)),0))\
FROMradacctWHEREUserName'=%{%k}'AND\
UN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- freeradius 配置 信息 详解