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
安装
yum -y install freeradius freeradius-utils freeradius-mysql
启动radius
systemctl start radiusd systemctl enable radiusd
日志在
/var/log/radius/radius.log
也可以使用调试模式启动,直接在当前页面显示日志
radiusd -X
FreeRADIUS 3.0的测试
修改配置文件
vim /etc/raddb/users
把以下行的注释取消
测试
[root@localhost ~]# radtest steve testing localhost 0 testing123
如果输出"Access-Accept"
表示成功了,"Access-Reject"
表示失败了。
使用radius -X启动则在终端显示以下代表认证成功
关闭radius测试会提示没有响应
测试完把注释在加上
4,安装mariadb
安装
yum install -y mariadb-server mariadb
启动
systemctl start mariadb systemctl enable mariadb
运行安全设置
mysql_secure_installation
进入数据库
[root@localhost ~]# mysql -uroot -p Enter password:
创建数据库并授权
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和数据库
导入数据库
[root@localhost ~]# mysql -uroot -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
为/etc/raddb/mods-enabled创建软连接
[root@localhost ~]# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
查看
[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,并更改数据库连接参数,以适合环境
[root@localhost ~]# vim /etc/raddb/mods-available/sql
设置以下项,其余项保持默认
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
#chgrp -h radiusd /etc/raddb/mods-enabled/sql
添加客户端连接设置,添加允许所有用户接入,如需特定ip访问,ip可以自由更改。
[root@localhost ~]# vim /etc/raddb/clients.conf
本次设置所有client都可以接入,生产中可设置特定ip
密钥为testing123为需要在路由器配置的密钥
client all_client { ipaddr = 0.0.0.0/0 secret = testing123 require_message_authenticator = no }
建立组信息和用户
建立组信息
登录mysql创建
建立组信息
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)
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
查看
将用户加入组中
insert into radusergroup (username,groupname) values ('test','user');
重启radius测试
systemctl restart radiusd
测试
radtest test testpwd localhost 1812 testing123
6,路由器设置使用radius认证
设置如下
电脑连接wifi
手机 连接
注意:连接可以查看日志排错
tail -f /var/log/radius/radius.log
调试期间可以使用调试模式启动,显示详细日志信息
radiusd -X