freeradius配置信息详解.docx
- 文档编号:24215082
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:27
- 大小:24.56KB
freeradius配置信息详解.docx
《freeradius配置信息详解.docx》由会员分享,可在线阅读,更多相关《freeradius配置信息详解.docx(27页珍藏版)》请在冰豆网上搜索。
freeradius配置信息详解
Radiusd.conf文件是freeradius的核心配置文件,其中设置了服务器的基本信息,配置文件与日志文件的环境变量,并详细配置freeradius模块所使用的信息,与认证和计费所使用模块的配置.配置的变量定义的形式为${foo},他们就在这个文件上,并且不随请求到请求而改变.变量的格式参照variables.txt.
1.1环境变量
此处定义其他配置文件以及目录的位置,也就是环境变量
prefix=/usr/local
exec_prefix=${prefix}
sysconfdir=${prefix}/etc
localstatedir=${prefix}/var
sbindir=${exec_prefix}/sbin
logdir=${localstatedir}/log/radius
raddbdir=${sysconfdir}/raddb
radacctdir=${logdir}/radacct
配置文件和日志文件的位置
confdir=${raddbdir}
run_dir=${localstatedir}/run/radiusd
日志文件的信息,添加到如下配置文件的底部
log_file=${logdir}/radius.log
1.2全局配置
模块的位置由libdir来配置。
如果不能工作,那么你可以从新配置,从新Build源码,并且使用共享库。
pidfile:
WheretoplacethePIDoftheRADIUSserver.
pidfile=${run_dir}/radiusd.pid
user/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:
#dottedquad(1.2.3.4)
#hostname()
#wildcard(*)
#ipaddr=*
#Portonwhichtolisten.
#Allowedvaluesare:
#integerportnumber(1812)
#0means"use/etc/servicesfortheproperport"
#port=0
#Typeofpacketstolistenfor.
#Allowedvaluesare:
#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
#format="=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
delimiter="@"
ignore_default=no
ignore_null=no
}
#‘username%realm’
#
realmrealmpercent{
format=suffix
delimiter="%"
ignore_default=no
ignore_null=no
}
#‘domain\user’
#
realmntdomain{
format=prefix
delimiter="\\"
ignore_default=no
ignore_null=no
}
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!
detailperm=0600
}
将相应(Reply)信息详细记录到文件上,按照设定时间,每隔一个时段生成一个新文件记录
detailreply_log{
detailfile=${radacctdir}/%{Client-IP-Address}/reply-detail-%Y%m%d
ThisMUSTbe0600,otherwiseanyonecanread
theuserspasswords!
detailperm=0600
}
Thismodulelogspacketsproxiedtoahomeserver.
detailpre_proxy_log{
detailfile=${radacctdir}/%{Client-IP-Address}/pre-proxy-detail-%Y%m%d
ThisMUSTbe0600,otherwiseanyonecanread
theuserspasswords!
detailperm=0600
}
Thismodulelogsresponsepacketsfromahomeserver.
detailpost_proxy_log{
detailfile=${radacctdir}/%{Client-IP-Address}/post-proxy-detail-%Y%m%d
ThisMUSTbe0600,otherwiseanyonecanread
theuserspasswords!
detailperm=0600
}
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
callerid="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{
counter-name=Daily-Session-Time
check-name=Max-Daily-Session
sqlmod-inst=sql
key=User-Name
reset=daily
query="SELECTSUM(AcctSessionTime-\
GREATEST((%b-UNIX_TIMESTAMP(AcctStartTime)),0))\
FROMradacctWHEREUserName=’%{%k}’AND\
UNIX_TIMESTAMP(AcctStartTime)+AcctSessionTime>‘%b’"
}
例2
sql
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- freeradius 配置 信息 详解