wifi认证Portal开发系列(二):FreeRadius的安装和测试、关联Mysql
注:本次安装是基于FreeRadius 3版本进行安装配置的,在配置Mysql的过程中,与2版本有些不同。操作系统是CentOS 7
一、准备工作
工具的安装
#安装rz、sz命令用于文件上传
yum install -y lrzsz
rz命令:

修改yum镜像源地址为网易开源镜像源,解决国外镜像下载慢的问题。repos文件下载地址:http://mirrors.163.com/
#进入目录
cd /etc/yum.repos.d
#备份repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#rz上传163repos文件
#刷新缓存
yum clean all
yum makecache
修改yum镜像源地址为阿里巴巴开源镜像源。
#进入目录
cd /etc/yum.repos.d
#备份repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
#刷新缓存
yum clean all
yum makecache
安装编译FreeRadius所需要的依赖
#安装wget、gcc、gcc-c++、make
yum install –y wget gcc gcc-c++ make
#安装libtalloc
yum -y install libtalloc libtalloc-devel
#安装openssl以及openssl头文件
yum install -y openssl openssl-devel
二、安装FreeRadius service端
注意:如果FreeRadius需要与Mysql关联,请先安装mysql-devel
yum install -y mysql-devel
yum install -y freeradius-utils freeradius-mysql
安装方法一:
yum安装,安装后FreeRadius的路径为/etc/raddb
yum install -y freeradius
安装方法二:
make编译安装,安装后FreeRadius的路径为/usr/local/etc/raddb
通过wget命令下载FreeRadius压缩包
cd /home
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.15.tar.gz
或者直接下载压缩包(下载地址:http://freeradius.org/releases/),然后使用rz命令上传至服务器
tar命令解压压缩包,并进入解压后的文件夹
tar -zxvf freeradius-server-3.0.15.tar.gz
cd freeradius-server-3.0.15
使用./configure检测你的安装平台的目标特征,出现错误提示缺什么就安装什么,例:出现configure: error: FreeRADIUS requires libtalloc 错误则安装libtalloc及libtalloc-devel。监测成功后出现make.inc.in文件
./configure
检测不成功:

检查成功:

没有其他错误后编译安装FreeRadius
#编译
make
#安装
make install

开放防火墙端口,1812是认证授权端口,1813是计费端口
iptables -A INPUT -p udp --dport 1812 -j ACCEPT
iptables -A INPUT -p udp --dport 1813 -j ACCEPT
查看端口是否开放
iptables -L -n | grep 181

使用命令:
#开启freeRadius调试模式
radiusd -X
出现Ready to process requests表示安装成功

修改本地用户文件
cd /usr/local/etc/raddb/
#修改users
vim users
查找 steve Cleartext-Password := "testing" (76-84行), 取消该段内容的注释。

重启radiusd -X,启动另一个窗口,输入命令
radtest steve testing localhost 0 testing123
接受到Access-Accept表示请求成功

三、Mysql的安装
四、FreeRadius与Mysql关联
1、创建radius数据库
登陆mysql,创建一个名为radius的数据库
mysql> create database radius;
创建radius用户,并赋予管理radius数据库的权限,密码为:radius123
mysql> grant all on radius.* to radius@localhost identified by 'radius123';
刷新
mysql> flush privileges;
切换到FreeRadius存放sql目录下
cd /usr/local/etc/raddb/mods-config/sql/main/mysql
导入FreeRadius的sql文件
mysql -uradius -pradius123 radius<schema.sql
或
mysql -uradius -pradius123 radius</usr/local/etc/raddb/mods-config/sql/main/mysql/schema.sql
此时radius数据库中将有多张表

登陆mysql
加入组信息,本例中的组名为user
/*切换数据库*/
mysql> use radius;
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type','=','Framed-User');
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');

在radcheck中插入一条用户信息
mysql> use radius;
mysql> insert into radcheck(id,username,attribute,op,value) values('','test','Cleartext-Password',':=','test123');

用户加到组里
mysql> insert into radusergroup(username,groupname) values('test','user');
2、配置FreeRadius与mysql的关联
进入FreeRadius目录,yum安装的为:/etc/raddb
cd /usr/local/etc/raddb

进入mods-available文件夹,并修改sql文件
cd mods-available/
vim sql
修改修改driver="rlm_sql_null"为你所对应的数据库类型,此处修改为为“driver=rlm_sql_mysql”,配置radius数据库连接属性


给mods-enabled文件夹和mods-available文件夹下的sql文件做个软链接
cd ../mods-enabled
ln -s /usr/local/etc/raddb/mods-available/sql ./

修改sites-enabled目录下的default文件

分别将authorize {}、accounting{}下的sql去掉注释,并且将file注释掉。
开启FreeRadius调试模式
radiusd -X
打开另一个客户端,输入格式:radtest [user] [passwd] [主机] [nas port] [secret]
radtest test test123 localhost 1812 testing123
出现Access-Accept表示请求成功

radiusd段打印出来的信息

secret在clients.conf文件中配置,默认给localhost配置的为testing123

可以自行添加配置Radius Client段的IP以及密钥
client anthorClientIpName {
ipaddr = 192.168.206.131
secret = anthorSecret
}

wifi认证Portal开发系列(二):FreeRadius的安装和测试、关联Mysql的更多相关文章
- wifi认证Portal开发系列(一):Radius与FreeRadius简介
RADIUS 维基百科上的介绍: Remote Authentication Dial-In User Service (RADIUS) is a networking protocol that p ...
- wifi认证Portal开发系列(四):portal协议的java封装
一.报文封装类 AbstractPortalMsg.java Portal协议数据报文封装类 package org.yoki.edu.common.protocol.portal.msg; imp ...
- wifi认证Portal开发系列(三):portal协议
中国移动WLAN业务PORTAL协议规范介绍 一.用户上线认证流程 上线流程完成用户账号的认证,并把认证结果通知Portal Server,Portal server将会通知WLAN用户并且显示相应的 ...
- openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍
openresty开发系列2--nginx的简单安装,正向.反向代理及常用命令和信号控制介绍 一.nginx的安装下载及编译安装1.Nginx下载:nginx-1.13.0.tar.gz,下载到:/u ...
- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda
---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...
- WordPress版微信小程序开发系列(二):安装使用问答
自WordPress版微信小程序发布开源以来,受关注的程度超过我原来的想象.这套程序主要面对的用户是wordpress网站的站长,如果wordpress站想在微信的生态圈得到推广,小程序成为一种重要的 ...
- 微信小程序开发系列二:微信小程序的视图设计
大家如果跟着我第一篇文章 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 一起动手,那么微信小程序的开发环境一定搭好了.效果就是能把该小程序的体验版以二维码的方式发送给其他朋友使用. 这个系列 ...
- Windows下USB磁盘开发系列二:枚举系统中所有USB设备
上篇 <Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>介绍了很简单的获取系统U盘盘符的办法,现在介绍下如何枚举系统中所有USB设备(不光是U盘). 主要调用的API如下: 1 ...
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
随机推荐
- Crash的数字表格(bzoj 2054)
Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如 ...
- VS扩展工具
原文发布时间为:2011-03-09 -- 来源于本人的百度文章 [由搬家工具导入] http://visualstudiogallery.msdn.microsoft.com/site/search ...
- Eigen--简单的C++矩阵计算库
晚上突然想写一段小C++程序,要用到矩阵求逆呀乘法呀之类的,所以找了一下有什么现成的可用的C++矩阵计算相关的库,发现有一大堆,在其中各种各样的配置,感觉比较麻烦.从方便性来说Eigen是最方便的了, ...
- java实现服务端开启多线程处理客户端的上传图片请求
将客户端c:\\a.jpg 上传到e:\\公司名称+6位随机数.jpg 这样为了不断开连接客户端每次上传的图片名字不重名覆盖,验证之用 这里需要注意的是Socket的终止客户端的输入方法 shut ...
- vSphere虚拟化ESXI6.0+vclient安装部署
知识部分:一.什么是vSphere?vSphere是VNware公司在2001年基于云计算推出的一套企业级虚拟化解决方案.核心组件为ESXi.如今,经历了5个版本的改进,已经实现了虚拟化基础架构. ...
- Dialog和软键盘在屏幕上的并存问题:
最近做添加门店,门店昵称自动根据文字变化去搜索后台数据,但是一搜索软键盘就关闭了,感觉用户体验不太好.一开始根本不知道啥问题,找了半天才发现是网络请求dialog加载导致软件盘隐藏的,后面直接把dia ...
- luogu P1260 工程规划(luogu wa)don't know way
题目描述 造一幢大楼是一项艰巨的工程,它是由n个子任务构成的,给它们分别编号1,2,…,n(5≤n≤1000).由于对一些任务的起始条件有着严格的限制,所以每个任务的起始时间T1,T2,…,Tn并不是 ...
- 2016北京集训测试赛(十)Problem A: azelso
Solution 我们把遇到一个旗子或者是遇到一个敌人称为一个事件. 这一题思路的巧妙之处在于我们要用\(f[i]\)表示从\(i\)这个事件一直走到终点这段路程中, \(i\)到\(i + 1\)这 ...
- Java中Properties配置文件读取
以下实践的是Properties配置文件的基本操作方法.像spring使用xml做依赖注入时,这个配置文件起到非常实用的作用. 一.格式规范 参考wiki百科的格式简介:https://zh.wiki ...
- html5扫面二维码逻辑
写在前面 项目中有这样的需求,在android端嵌入的html5应用中,需要扫描二维码,而一般的浏览器是不允许你调用摄像头的.最后时限方式是由app的webview进行扫描,将扫描结果返回,也就是js ...