分类: 网络与安全
2011-11-23 17:30:31
Freeradius是免费下载源代码的,有能力的朋友可以下载后自己编译,本人很懒呀,就直接下载了windows下的安装版本,也就是别人编译好的1.1.5版本。采用默认安装在C盘,主要需要修改的是在etc/raddb中的文件,下面分别说明:
(1)主配置文件是radiusd.conf:
首先是是环境变量
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 //与NAS上配置的端口号要相同
(2)clients.conf是用来配置哪些NAS可以访问radius,语法如下:
client 192.168.100.0/24 { //NAS的IP地址,可以是网段,NAS是指在那些启用了AAA指定radius服务器的设备。
secret = azalea // NAS与radius间的通信密码key
shortname = ming.net //域名,可以随便写。
nastype = other //可以不写,指定nas的类型,通常radius能自己识别。
}
(3)users.conf:是用来配置用户信息的。语法如下:
ming Auth-Type := EAP, User-Password == "123456" //ming为用户名, 后面跟认证类型与密码。
EAP-Type := peap
radiusadmin Auth-Type := Local, Cleartext-Password := "radiusadmin"
Service-Type = NAS-Prompt-User, cisco-avpair = "shell:priv-lvl=15"
(4) acct_users:计费用户设定:语法如下:
DEFAULT Acct-Status-Type == Start
Exec-Program = "/aaa/acctStart"
DEFAULT Acct-Status-Type == Stop
Exec-Program = "/aaa/acctStop "
(5)eap.conf:是用来配置eap的相关参数,语法如下:
eap {
default_eap_type = md5
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
md5 {
}
leap {
}
tls {
private_key_password = whatever
private_key_file = ${raddbdir}/certs/cert-srv.pem
certificate_file = ${raddbdir}/certs/cert-srv.pem
CA_file = ${raddbdir}/certs/demoCA/cacert.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
fragment_size = 1024
include_length = yes
check_crl = yes
check_cert_issuer = "/C=GB/ST=Berkshire/L=Newbury/O=My Company Ltd"
check_cert_cn = %{User-Name}
cipher_list = "DEFAULT"
}
ttls {
default_eap_type = md5
copy_request_to_tunnel = no
use_tunneled_reply = no
}
peap{
default_eap_type = mschapv2
}
mschapv2 {
}
}
配置完这些后,运行FreeRadius.net后,右键点击任务栏出现start FreeRadius.net in Debug mode后,直到出现以下信息才算正常:
直到出现以下信息才算正常
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
如果用cisco的三层交换机做NAS,要做如下配置:
aaa new-model
aaa authentication dot1x default group radius
aaa authorization network default group radius
dot1x system-auth-control
radius-server host 192.168.100.2 auth-port 1812 acct-port 1813 key azalea
如果要使用户用802.1x认证,在交换机端口下启用802.1x时的配置:
Dot1x port-control auto
Dot1 multi-host //这是由于通常一个交换机端口下不至一个用户。