• 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的安装

      参考:CentOs安装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('2','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
    }

     

  • 相关阅读:
    php date() 函数
    ajax接收遍历处理json格式数据
    textarea 滚动条属性设置
    $.each()和$(selector).each()
    PhpStorm快捷方式
    asp.net错误记录
    php checkbox 从数据库读取和写入
    php表单中如何获取单选按钮与复选按钮的值(示例)
    php一些单选、复选框的默认选择方法(示例)
    常用正则表达式:手机、电话、邮箱、身份证、IP地址、网址、日期等
  • 原文地址:https://www.cnblogs.com/FlyingPuPu/p/7772410.html
Copyright © 2020-2023  润新知