Freeradius是一个模块化,高性能并且功能丰富的一套Radius程序,包含服务器,客户端(radius client),开发库和一些额外的相关radius工具。 作为第一款开源发布的Radius程序,同时作为一个普通安装包,被许多种操作系统内置。
前提条件:
Radius认证服务器(此处使用centos 7搭建),支持Radius服务器认证路由等硬件设备。
参考网站:Centos 7 freeradius 搭建企业wifi认证服务
搭建实验环境并关闭防火墙
实验环境为centos7,IP地址为192.168.0.178,开始时需将防火墙关闭。
[root@loaclhost ~]# systemctl stop firewalld.service /*关闭防火墙*/
安装mariadb数据库
[root@loaclhost ~]# yum -y update
(PS:如在yum -y update时出现下图 /var/run/yum.pid 被占用,可使用下面命令解除占用后在执行安装。)
[root@loaclhost ~]# rm -f /var/run/yum.pid
[root@loaclhost ~]# yum install -y mariadb-server mariadb
开启mariadb数据库及设置为开机自启动:
[root@loaclhost ~]# systemctl start mariadb /*开启数据库*/
[root@loaclhost ~]# systemctl enable mariadb /*设置开机自启动*/
查看mariadb数据库状态:
[root@loaclhost ~]# systemctl status mariadb
[root@loaclhost ~]# systemctl is-enabled mariadb.service
初始化mariadb数据库
[root@loaclhost ~]# mysql_secure_installation /*初始化数据库时,需要选择的可按照下图进行设置。*/
创建FreeRadius 数据库
[root@loaclhost ~]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE radiusdb; /*创建radiusdb数据库*/
MariaDB [(none)]> GRANT ALL ON radiusdb.* TO dbuser@localhost IDENTIFIED BY "mypass"; /*赋予权限*/
GRANT ALL ON radiusdb.* TO dbuser@'%' IDENTIFIED BY "mypass"; /*赋予权限*/
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q /*退出*/
Bye
安装FreeRadius
yum安装freeradius
[root@loaclhost ~]# yum -y install freeradius freeradius-utils freeradius-mysql
导入数据库schema。schema.sql 里是创建数据表的sql语句
[root@loaclhost~]# mysql -u root -p radiusdb < /etc/raddb/mods-config/sql/main/mysql/schema.sql /*输入数据库密码*/
配置FreeRadius使用mysql,启用sql模块
[root@loaclhost~]# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
[root@loaclhost~]# chgrp -h radiusd /etc/raddb/mods-enabled/sql
配置mysql数据库连接信息
[root@loaclhost~]# vim /etc/raddb/mods-available/sql
将图示处进行修改
修改如下图所示后进行保存:
添加FreeRadius启动服务
[root@loaclhost~]# systemctl enable radiusd.service
强制指定radius服务启动的顺序
FreeRadius服务必须在数据库正常启动后才能正常启动,否则会出错。为了确保这一点,按照以下方法强制指定radius服务启动的顺序
[root@loaclhost~]# vi /etc/systemd/system/multi-user.target.wants/radiusd.service
添加客户端连接设置
编辑/etc/raddb/clients.conf文件,为允许连接的客户端设置相应的共享秘钥允许所有客户端连接, secret 是在访问freeradius时要使用的秘钥,设置AP路由器时要使用.(非常重要)
[root@loaclhost~]#vi /etc/raddb/clients.conf
添加此代码至最后处,需放在最后大括号里面方可生效。
client all_client {
ipaddr = 0.0.0.0/0
secret = testing123
require_message_authenticator = no
}
[root@loaclhost~]# systemctl start radiusd.service
[root@loaclhost~]# systemctl status radiusd.service
若要看在终端看日志
如果radius启动出现问题,可以将radius进程停止,然后以参数-X的方式临时启动调试模式, 就可以在终端实时看日志
[root@loaclhost~]# pkill radius
[root@loaclhost~]# radiusd -X
测试radius
连接mysql命令行mysql -p radiusdb,使用sql添加一条测试记录:这条记录是使用手机、电脑等终端登录路由器的账号和密码
[root@loaclhost~]# mysql -u root -p
[root@loaclhost~]# use radiusdb /*进入radiusdb数据库中*/
MariaDB [radiusdb]> INSERT INTO radcheck (id, username, attribute, op, value) VALUES (1,x----t','Cleartext-Password',':=','x---b'); /创建索引为1,用户名为x----t用户及设置密码为x---b的用户/
[root@loaclhost~]# radtest x----t x---b localhost 0 testing123 /*此处testing123 为上述client all_client 创建时所设置的共享密钥*/
认证成功的输出如下:
到此Radius服务器搭建完毕。
AP设置
1)在AP后台中点击【认证授权】,【外部服务器】,【新增】。将新建认证服务器【IP地址】输入【192.168.0.178】,输入上述【共享秘钥】及在数据库中创建的【用户名】(x----t)及【密码】(x---b)进行有效性测试。
2)如搭建无误时则提示【服务可用】
3)在接入点设置,无线网络中新增无线网络(此处为X-----st)
4)在【认证服务器】,【账号认证】,【主认证服务器】中选择【radius 文档】。
到此AP设置完毕。
连接测试
1)连接上述AP中设置无线SSID: X-----t.
2)此时则会弹出【账号认证】页面,输入上述设置用户名及密码。
3)认证成功后即可上网。
本文由 yorickbao 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。