其他分享
首页 > 其他分享> > 笔记:基于freeradius 3.0的wifi认证

笔记:基于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