分类:
2011-08-31 17:26:50
原文地址:radius配置文件radiusd.conf分析 作者:流星陨落
Radiusd.conf文件是freeradius的核心配置文件,其中设置了 服务器的基本信息, 配置文件与日志文件的环境变量,并详细配置freeradius模块所使用的信息, 与认证和计费所使用模块的配置. 配置的变量定义的形式为${foo},他们就在这个文件上,并且不随请求到请求而改变. 变量的格式参照 variables.txt.
环境变量
此处定义其他配置文件以及目录的位置,也就是环境变量
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
全局配置
模块的位置由 libdir来配置。
如果不能工作,那么你可以从新配置,从新Build源码,并且使用 共享库。
pidfile: Where to place the PID of the RADIUS server.
pidfile = ${run_dir}/radiusd.pid
user/group
如果有评论,服务器会运行 用户/组 启动它. 修改用户/组,必须具有root权限启动服务器
这里的含义是指定启动radius服务可以限定操作系统上的用户和组,但是不建议启动它.
#user = nobody
#group = nobody
最长请求时间(秒),这样的问题经常需要存在在应用SQL数据库时候,建议设置为5秒到120秒之间.
max_request_time = 30
当请求超过最长请求时间的时候,可以设置服务器删除请求.
当你的服务在threaded(线程下)运行,或者 线程池(thread pool) 模式,建议这里设置为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 {
# IP address on which to listen.
# Allowed values are:
# dotted quad (1.2.3.4)
# hostname (radius.example.com)
# wildcard (*)
# ipaddr = *
# Port on which to listen.
# Allowed values are:
# integer port number (1812)
# 0 means "use /etc/services for the proper port"
# port = 0
# Type of packets to listen for.
# Allowed values are:
# auth listen for authentication packets
# acct listen for accounting packets
#
# type = auth
#}
hostname_lookups大概是表示为NAS查找它的域名信息?可以通过域名配置NAS?
hostname_lookups = no
是否允许 core dumps.
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
}
PROXY CONFIGURATION
代理域.
是否开启代理服务,具体配置参照 ${confdir}/proxy.conf
proxy_requests = yes
$INCLUDE ${confdir}/proxy.conf
Clients配置
$INCLUDE ${confdir}/clients.conf
是否启用snmp配置,具体配置文件在snmp.conf
snmp = no
$INCLUDE ${confdir}/snmp.conf
线程池 配置 域
thread pool {
启动时服务的个数.(在启动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 PAP 模块
# Supports multiple encryption schemes 支持多种加密方式
# clear: Clear text 明文
# crypt: Unix crypt Unix 加密
# md5: MD5 ecnryption MD5加密
# sha1: SHA1 encryption. SHA1加密
# DEFAULT: crypt 默认是Unix加密
pap {
encryption_scheme = crypt
}
1.3.2 CHAP模块
chap {
authtype = CHAP
}
1.3.3 PAM模块
PAM模块 (PAM) 是行业标准验证框架,
鉴于很多系统的PAM库都有内存漏洞,所以不建议使用。
pam {
pam_auth = radiusd
}
1.3.4 UNIX 系统用户的 认证模块
unix {
cache = no
cache_reload = 600
# passwd = /etc/passwd
# shadow = /etc/shadow
# group = /etc/group
radwtmp = ${logdir}/radwtmp
}
1.3.5 EAP模块
详细见${confdir}/eap.conf
$INCLUDE ${confdir}/eap.conf
1.3.6 MSCHAP 模块
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.7 LDAP 配置 管理员在2009年8月13日编辑了该文章文章。