CentOS搭建radius服务器用于wifi的wap2认证
参考:https://www.dazhuanlan.com/2019/10/01/5d9313aa9a9a9/
https://www.cnblogs.com/keephappy/p/7681695.html
https://blog.csdn.net/qq_29056051/article/details/81066205
1,网络拓扑
IP规划
明细 | IP | 备注 |
路由器WAN口 | 192.168.1.10 | |
路由器LAN口 | 192.168.0.0/24 | |
Radius服务器 | 192.168.1.100 |
2,环境查看
路由器型号为TP-Link TL-WAR1200L也可以使用其他支持WPA2认证的路由器
3,安装FreeRadius
安装
1 | yum -y install freeradius freeradius-utils freeradius-mysql |
启动radius
1 2 | systemctl start radiusd systemctl enable radiusd |
日志在
1 | / var /log/radius/radius.log |
也可以使用调试模式启动,直接在当前页面显示日志
1 | radiusd -X |
FreeRADIUS 3.0的测试
修改配置文件
1 | vim /etc/raddb/users |
把以下行的注释取消
测试
1 | [root@localhost ~]# radtest steve testing localhost 0 testing123 |
如果输出"Access-Accept"
表示成功了,"Access-Reject"
表示失败了。
使用radius -X启动则在终端显示以下代表认证成功
关闭radius测试会提示没有响应
测试完把注释在加上
4,安装mariadb
安装
1 | yum install -y mariadb-server mariadb |
启动
1 2 | systemctl start mariadb systemctl enable mariadb |
运行安全设置
1 | mysql_secure_installation |
进入数据库
1 2 | [root@localhost ~]# mysql -uroot -p Enter password: |
创建数据库并授权
1 2 3 4 5 6 7 8 9 | MariaDB [(none)]> create database radius; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on radius.* to radius@ 'localhost' identified by 'radius' ; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) |
5, 配置radius和数据库
导入数据库
1 | [root@localhost ~]# mysql -uroot -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql |
为/etc/raddb/mods-enabled创建软连接
1 | [root@localhost ~]# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/ |
查看
1 2 | [root@localhost ~]# ll /etc/raddb/mods-enabled/sql lrwxrwxrwx 1 root root 29 1月 19 14:09 /etc/raddb/mods-enabled/sql -> /etc/raddb/mods-available/sql |
配置SQL模块/ raddb/mods-available/ SQL,并更改数据库连接参数,以适合环境
1 | [root@localhost ~]# vim /etc/raddb/mods-available/sql |
设置以下项,其余项保持默认
1 2 3 4 5 6 7 8 9 | driver = "rlm_sql_mysql" dialect = "mysql" server = "localhost" port = 3306 login = "radius" password = "radius" radius_db = "radius" read_clients = yes |
然后,将/etc/raddb/mods-enabled/sql所属组更改为radiusd
1 | #chgrp -h radiusd /etc/raddb/mods-enabled/sql |
添加客户端连接设置,添加允许所有用户接入,如需特定ip访问,ip可以自由更改。
1 | [root@localhost ~]# vim /etc/raddb/clients.conf |
本次设置所有client都可以接入,生产中可设置特定ip
密钥为testing123为需要在路由器配置的密钥
1 2 3 4 5 | client all_client { ipaddr = 0.0.0.0/0 secret = testing123 require_message_authenticator = no } |
建立组信息和用户
建立组信息
登录mysql创建
建立组信息
1 2 3 4 | 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' ); |
查看
建立用户信息:(在此新建用户名为test,密码为testpwd)
1 | insert into radcheck (username,attribute,op,value) values ( 'test' , 'Cleartext-Password' , ':=' , 'testpwd' ); |
查看
将用户加入组中
1 | insert into radusergroup (username,groupname) values ( 'test' , 'user' ); |
重启radius测试
1 | systemctl restart radiusd |
测试
1 | radtest test testpwd localhost 1812 testing123 |
6,路由器设置使用radius认证
设置如下
电脑连接wifi
手机 连接
注意:连接可以查看日志排错
1 | tail -f / var /log/radius/radius.log |
调试期间可以使用调试模式启动,显示详细日志信息
1 | radiusd -X |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2019-01-19 MySQL主从同步添加至zabbix监控即怎么使用zabbix收集shell脚本执行数据
2019-01-19 MySQL设置只读模式
2019-01-19 MySQL使用root用户授权出现错误ERROR 1045 (28000) at line 2: Access denied for user 'root'@'%' (using password: YES)解决办法