虚拟机中centos 安装和学习 radius2 版本号是2.2.x 的使用等知识
安装
为了測试方面,yum安装
yum -y install freeradius*
配置文件的位置是 /etc/raddb/
编译安装可能在 /usr/local/etc/raddb
# /etc/init.d/radiusd
使用方法:/etc/init.d/radiusd {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
yum会自己主动生成服务脚本,然后能够把radius当做服务直接使用了
配置文件
[root@orangleliu raddb]# tree -L 1
.
├── acct_users
├── attrs
├── attrs.access_challenge
├── attrs.access_reject
├── attrs.accounting_response
├── attrs.pre-proxy
├── certs
├── clients.conf
├── dictionary
├── eap.conf
├── example.pl
├── hints
├── huntgroups
├── ldap.attrmap
├── modules
├── panic.gdb
├── policy.conf
├── policy.txt
├── preproxy_users
├── proxy.conf
├── radiusd.conf
├── sites-available
├── sites-enabled
├── sql
├── sql.conf
├── sqlippool.conf
├── templates.conf
└── users
5 directories, 23 files
配置文件结构大概这样子,大部分的功能都是通过配置文件来完毕的,对于配置文件的熟悉很重要,每一个配置文件里都有大量的说明,细致阅读一遍基本也知道怎样操作。
radtest 是用来測试的工具,检查和測试很实用。
radiusd.conf
主配置文件clients.conf
用来配置客户端 里面应该相应 NAS设备(比如BRAS),自带了一个本地測试clientusers
配置了用户信息,针对某些用户设置认证规则,仅仅能使用pap的模式,能够设置password加密sql.conf
配置使用哪种数据库等,以及sql规则等site-available site-enabled
是存放 virtual server的文件夹,相似Apache的配置策略
概念
NAS 设备: 网络接入设备。这里通常是 Radius Client
认证和权鉴 使用 UDP 1812端口
计费 使用 UDP 1813端口
命令
radiusd
freeradius主程序,一般调试调试模式 使用radiusd -Xx
来启动radlast
用来查询用户通过NAS登录的情况radtest
用来模拟NAS设备发送请求radwho
查看当前在线的用户。可能由于配置编译等原因不好使radrap
关闭某个NAS的全部session
功能
认证
3个经常使用的认证协议,这三种协议都须要实username和password,算是文本协议,所以还挺easy观察和測试
PAP
redtest
命令默认就是使用这个协议,使用最广泛的协议。NAS会使用 username和加密之后的password 和Radius服务器交互
password明文存储
測试, 用户信息在user文件里配置
radtest alice passme 127.0.0.1 100 testing123
Sending Access-Request of id 41 to 127.0.0.1 port 1812
User-Name = "alice"
User-Password = "passme"
NAS-IP-Address = 127.0.0.1
NAS-Port = 100
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=41, length=40
Framed-IP-Address = 192.168.59.103
Reply-Message = "Hello, alice"
CHAP
PAP 的升级版本号
添加握手
password明文存储 password交互使用密文
MS-CHAP
- 微软版本号的 CHAP 协议
EAP 拓展协议
用户存储
头两个种方式都不推荐
文件方式 使用配置文件 users 文件来存储用户和password
Unix 系统用户 事实上是使用
/etc/shadow
来存储的用户信息(可是要注意权限问题,须要再 site-enable 中authorize 中打开unix配置)数据库方式 比如Mysql。
安装mysql插件
yum install freeradius2-mysql
创建数据库。导入初始化输入(依据文档就好了)
编辑
radius.conf
中# $INCLUDE sql.conf
行的凝视编辑
sql.conf
中 msql 的认证信息编辑
sites-enabled/default
中authorize
部分 去掉 sql 的选项凝视
计费过程
计费和认证相对独立的,须要NAS来控制整个过程。
能够用来统计用户上网时间,以及流量数据等。
计费開始发送
Accounting-Request
请求, 開始一个session。分配一个session-id计费请求中状态字段 Acct-Status-Type 为
Start, Interim-Update, Stop
来操作session的生命周期
问题
配置多个数据库
參考freeradius-checking-account-on-multiple
首先要编辑 数据库配置文件 sql.conf 添加一个sql配置块。 sql dbname {} dbname相似别名,配置项照着原来的配置写就好了
然后把
site-enable/default
原来的配置项sql 凝视掉 添加 dbname,就会使用 dbname中配置的数据库了