【freeradius2.x】 安装和学习
【freeradius2.x】 安装和学习
虚拟机中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),自带了一个本地测试client
users 配置了用户信息,针对某些用户设置认证规则,只能使用pap的模式,可以设置密码加密
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个常用的认证协议,这三种协议都需要有用户名和密码,算是文本协议,所以还挺容易观察和测试
PAP
redtest 命令默认就是使用这个协议,使用最广泛的协议。
NAS会使用 用户名和加密之后的密码 和Radius服务器交互
密码明文存储
测试, 用户信息在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 的升级版本
增加握手
密码明文存储 密码交互使用密文
MS-CHAP
微软版本的 CHAP 协议
EAP 拓展协议
用户存储
用户存储
头两个种方式都不推荐
文件方式 使用配置文件 users 文件来存储用户和密码
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中配置的数据库了
学习资料
学习资料
官方文档
network radius
FreeRadius Beginner’s Guide
评论暂时关闭