笔记:基于freeradius 3.0的wifi认证
作者:互联网
环境 Centos7 + MariaDB 5.5.68 + FreeRADIUS 3.0 防火墙懂得自己设置,不懂得全部关掉就行
Centos系统怎么安装就不多说了,我都是用最小化版本的,差不多1G左右
一、MariaDB 的安装
yum list | grep mariadb # 显示yum列表,再筛选
#yum安装
sudo yum install mariadb-server -y #yum安装
#我都是在非root用户下安装的,如果你是root用户,命令去掉sudo就行
#启动
sudo systemctl start mariadb #启动mariadb 对应的是停止 stop
sudo systemctl enable mariadb #加入开机自启动 对应的是移除 disable
#数据库安全配置向导
sudo mysql_secure_installation
#登录本地数据库服务器并创建radius数据库
sudo mysql -uroot -p #本地登录数据库
CREATE DATABASE radius; #创建数据库 #大写是规范,便于查看
exit #退出
二、安装freeradius 3.0
sudo yum install freeradius freeradius-utils -y #freeradius 服务器 #freeradius-utils 测试工具
rpm -ql freeradius # 可以用来查看软件安装的所有路径
#修改radius配置文件--用户表
sudo vi /etc/raddb/users
#steve Cleartext-Password := "testing"
# Service-Type = Framed-User,
# Framed-Protocol = PPP,
# Framed-IP-Address = 172.16.3.33,
# Framed-IP-Netmask = 255.255.255.0,
# Framed-Routing = Broadcast-Listen,
# Framed-Filter-Id = "std.ppp",
# Framed-MTU = 1500,
# Framed-Compression = Van-Jacobsen-TCP-IP
找到对应的行,取消#
这个文件是radius自带的用户表,如果认证用户数非常少且不变动,也可以考虑将用户直接写入到这个文件中
三、测试
sudo radiusd -X #开始调试状态
再打开一个新的终端,执行如下命令:
sudo radtest steve testing localhost 0 testing123
正常情况下,应该输出如下图所示的信息:
如果输出"Access-Accept packet" 表示成功了,"Access-Reject" 表示失败了。
四、FreeRADIUS与MariaDB的对接
sudo yum install freeradius-mysql -y #安装组件
#导入radius固定sql表格到mysql
mysql -uroot -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql #用root用户操作,普通用户无法访问路径
上面的指令,共导入了7个表,分别是:
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。
建立组信息和用户信息
输入mysql -uroot -p radius,打开数据库并进入radius数据库,在 mysql> 提示符下,执行如下命令:
1. 建立组信息:(在此新建组名称为user)
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.255');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
2. 建立用户信息:(在此新建用户名为test,密码为testpwd)
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
3. 将用户加入组中:
insert into radusergroup (username,groupname) values ('test','user');
5.6 修改 FreeRADIUS中的mysql 认证配置
执行如下命令:
ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/ #创建软连接
5.7 修改 FreeRADIUS中的mysql 配置文件
该配置文件位于/etc/raddb/mods-available目录,名称为sql
可以通过vi来修改,命令如下:
vi /etc/raddb/mods-available/sql
修改以下内容
driver = “rlm_sql_null” 改为 driver = “rlm_sql_mysql”,
dialect = "sqlite" 改为 dialect = "mysql"
# server = "localhost" 取消# 改为mysql的ip,本地可以不用改
# port = 3306 取消# 改为对应的端口
# login = "radius" 取消# 改为对应mysql登录用户名
# password = "radpass" 取消# 改为对应mysql登录密码
# Database table configuration for everything except Oracle
radius_db = "radius" 取消# 改为对应mysql数据库名称
保存并退出。
5.8 测试通过数据库做用户认证
1. 重新以调试方式运行freeradius:
radiusd -X
如果有类似报错,可能是之前radiusd -X命令没有退出导致,kill掉就行
2. 再打开一个新的终端,运行测试工具命令:
radtest test testpwd localhost 1812 testing123
完毕。
备注:如果只是为了基础的wifi认证,只需要在radius数据库中radcheck 表中添加数据就行
输入mysql -uroot -p radius,打开数据库并进入radius数据库,在 mysql> 提示符下,执行如下命令
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
备注:红色对应用户名 和 密码
标签:sudo,数据库,wifi,Framed,radius,3.0,mysql,freeradius 来源: https://blog.csdn.net/qq_33789722/article/details/115766707