一、安装mysql

安装freeradius之前先要确保已经安装了mysql、因为后来要用到、没有安装使用apt-get来安装

apt-get install mysql-server

二、安装freeradius

然后就是安装freeradius的部件

sudo apt-get install freeradius freeradius-ldap freeradius-mysql

安装完成后freeradius就会自动启动了、由于莪们要使用调试模式来启动freeradius、所以先关闭freeradius服务先

service freeradius stop

注意:

使用ubtuntu的apt-get方式来安装freeradius的位置会和源码不同、源码安装的默认位置是

/usr/local/etc/raddb/

而使用ubuntu的apt-get方式的配置文件则安置在

/etc/freeradius/

然后修改/etc/freeradius/下的users文件、

steve   Cleartext-Password := "testing"
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 172.16.3.33,
Framed-IP-Netmask = 255.255.255.0,
Framed-Routing = Broadcast-Listen,
Framed-Filter-Id = "std.ppp",
Framed-MTU = 1500,
Framed-Compression = Van-Jacobsen-TCP-IP

把这几行反注释、也就是使用一个名为steve、密码为testing的用户来测试一下是否通则登录freeradius服务器、保存后退出然后启动radius的调试模式

freeradius -X

然后打开另一个终端、使用radtest来测试用户是否能够通过

radtest steve testing localhost 1812 testing123

这句前steve和testing代表用户和密码、localhost和1812则是freeradius的IP地址和端口号、testing123则是freeradius服务端与客户端之间通讯的key、由/etc/freeradius目录下的clients.conf定义、在client localhost字段的secret参数、

client localhost {
...
...
secret = testing123
...
...
}

注意这个secret字段最好不要少于8个字节、更多具体的详细说明请看clients.conf文件中secret参数前面的注释说明

radtest成功通过后则会显示Access-Accept状态、

另外、如果迩一个不好运、确实在linux系统中存在steve的用户、这样子的话freeradius服务器则会跳过迩现在的用户配置直接去查询系统的配置、这时的密码就会以系统密码为准、

这里在users文件中定义的密码就会失效、而且如果改用户是禁止在linux上登录的话、则会直接把用户打回成 Access-Reject。

=========================================================================================================================================

FreeRadius安装完后默认只允许本机的client客户端访问radius服务器

添加代理主机,编辑文件clients.conf 

 #vi clinets.conf  

 在文件末尾添加客户端,格式如下

# 添加一个子网 192.168.2.0/ 的网段可访问

client 192.168.2.0/ {
secret = 111111  #radius客户端认证密钥
}
:wq!
  #强制保存退出 关闭防火墙
Iptables -F

至此freeradius测试环境搭建完成,可以使用测试账号登陆。本人测试已成功。

P.S.:如果客户端不具备公网地址或者由于处于某种防火墙之下、会有可能造成访问失败、

========================================================================================================================================

接下来的工作是使用mysql数据库与freeradius连接

首先要做的就是建立相应的radius数据库、进入mysql

mysql -uroot -p

然后建立radius数据库

CREATE DATABASE radius;

之后使用exit退出mysql、然后建立一系统的表格、freeradius已经自带有sql脚本、莪们执行这些脚本就可以自行建立了、首先定位到这些脚本的位置先

cd /etc/freeradius/sql/mysql

看见有不少sql文件

-rw-r--r-- 1 root root      661 2010-01-04 21:56 admin.sql
-rw-r----- 1 root freerad 4543 2010-01-04 21:56 counter.conf
-rw-r--r-- 1 root root 1242 2010-01-04 21:56 cui.conf
-rw-r--r-- 1 root root 452 2010-01-04 21:56 cui.sql
-rw-r----- 1 root freerad 14375 2012-01-31 23:26 dialup.conf
-rw-r----- 1 root freerad 14379 2012-01-31 23:25 dialup.conf.bak
-rw-r----- 1 root freerad 4058 2010-01-04 21:56 ippool.conf
-rw-r----- 1 root freerad 579 2010-01-04 21:56 ippool.sql
-rw-r----- 1 root freerad 400 2010-01-04 21:56 nas.sql
-rw-r----- 1 root freerad 4318 2010-01-04 21:56 schema.sql
-rw-r--r-- 1 root root 1844 2010-01-04 21:56 wimax.conf
-rw-r--r-- 1 root root 407 2010-01-04 21:56 wimax.sql

其中admin.sql可以为mysql建立一个专门管理radius数据库的管理员

schema.sql则是用来建立radius数据库最基本的表格、

其它的sql就不用管先了、是其它附加模块才需要导入的

首先导入admin.sql

mysql -u root -pPASSWD radius < admin.sql
mysql -u root -pPASSWD radius < schema.sql

其中的USERNAME和PASSWD代表mysql管理员的帐户和密码、通常是使用最高权限的root用户来执行、【特别要注意格式!!!】

schema.sql同样也是照此格式来执行导入到数据库、如果结果正常的话、可以使用radius账户进入mysql数据库

mysql -u radius -p

默认密码是"radpass"(没有引号)、登录后再查看数据库、

use radius;
show tables;

会看到已经建立有相应的表格了、现在就完成了mysql数据库的部署了、之后再去配置freeradius的相关数据吧、

 MySQL中表结构的定义

 /etc/raddb/sql/mysql/schema.sql 主数据库定义,7个表,包括
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。

修改/etc/freeradius/radiusd.conf、定位到该行

 $INCLUDE  sql.conf

将之反注释、启动sql.conf、

然后编辑/etc/freeradius/sql.conf

sql {
  #
  # Set the database to one of:
  #
  # mysql, mssql, oracle, postgresql
  #
  database = "mysql"

  #
  # Which FreeRADIUS driver to use.
  #
  driver = "rlm_sql_${database}"

  # Connection info:
  server = "localhost"
  #port = 3306
  login = "radius"
  password = "radpass"

  # Database table configuration for everything except Oracle
  radius_db = "radius"
  ...
}

默认情况下、使用ubuntu的apt-get命令来安装freeradius会自动检测到已经安装了mysql而自动把database设置为mysql、如果迩的不是这样显示请设置成mysql、然后再再看password这个参数、如果迩之前已经更改了radius用户的密码、这里要做相应的修改、其余的参数就默认好了、

修改了sql.conf、再设置相应的设备通知其使用mysql作为数据存储设备、

vim /etc/freeradius/sites-available/default

把authorize{}字段下的file注释掉、反注释sql、这里的file指的就是usrs文件、将不再把用户信息写在users而使用mysql来存储用户信息、

把accounting{} 字段下的sql反注释、启用sql来记录统计信息、

把session{}字段下的sql反注释、启用用户同时登录限制功能、这里还需要修改其它地方、一会再说

把post-auth{} 字段的sql反注释、启用用户登录后进行数据记录功能、

整个文件如下所示

authorize {
  ...
# files
sql
  ...
}
accounting {
...
sql
...
}
session {
radutmp
#
# See "Simultaneous Use Checking Queries" in sql.conf
sql
} post-auth {
...
sql
...
}

注释:↑↑↑↑↑↑↑↑上段配置文件中 “...”的意思代表还有其他文档,请勿修改

编辑dialup.conf文件

vim /etc/freeradius/sql/mysql/dialup.conf

找到这几行、将之反注释

    # Uncomment simul_count_query to enable simultaneous use checking
simul_count_query = "SELECT COUNT(*) \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime IS NULL"

之后整个对mysql的radius配置就已经完成了

建立组信息:(这些命令不用做任何修改,直接ctrl+c→ctrl+v就好了)(复制mysql> 后面的)
Liunx@ubuntu# mysql -u root -p

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-Address',':=','255.255.255.255'); 
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');

#建立用户信息:

mysql> insert into radcheck (username,attribute,op,value) values ('test','User-Password',':=','');

将用户加入组中:

mysql> insert into radusergroup (username,groupname) values ('test','user');

添加用户回复信息:

mysql> insert into radreply(username,attribute,op,value) values('test','Reply-Message','=','Yes,Good!');

注释:“mysql> 表示进入mysql状态。”  “test 表示需要自己输入用户名的变量  123 是表示自己输入密码的变量”

退出测试账号是否认证成功

service freeradius stop  #停止freeradius服务

freeradius -X  #调试模式启动freeradius服务

打开另一个终端

radtest test 123 localhost 1812 testing123

输入以下结果证明成功

Sending Access-Request of id  to 127.0.0.1 port
User-Name = "test"
User-Password = ""
NAS-IP-Address = 127.0.1.1
NAS-Port =
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port , id=, length=
Reply-Message = "Yes,Good!"
Service-Type = Framed-User
Framed-IP-Netmask = 255.255.255.0
Framed-IP-Address = 255.255.255.255

注释:“testing123 是raidus密码”上文中提到修改代理主机有一个认证密钥,如果用本机测试切勿使用上文中的密钥,否则会认证失败。

    当涉及到wifi 802.1x认证的时候radius密码填写上文中提到的密钥。
【如下图】Radius服务器就填写搭建服务的主机IP地址就可以端口号默认1812,怎么修改我也不知道。
设置完成后去mysql里面查看一下各个表格。
Liunx@ubuntu# mysql -u root -p

mysql> use radius;

 mysql> show tables;
 +------------------+
 | Tables_in_radius |
 +------------------+
 | radacct          |
 | radcheck         |
 | radgroupcheck    |
 | radgroupreply    |
 | radpostauth      |
 | radreply         |
 | radusergroup     |
 +------------------+
7 rows in set (0.00 sec)

mysql> select * from radusergroup;
+---------------+-----------+----------+
| UserName | GroupName | priority |
+---------------+-----------+----------+
| fredf | dynamic | |
| barney | static | |
| dialrouter | netdial | |
+---------------+-----------+----------+
rows in set (0.01 sec) mysql>
+----+----------------+--------------------+------------------+------+
| id | UserName | Attribute | Value | Op |
+----+----------------+--------------------+------------------+------+
| | fredf | Cleartext-Password | wilma | := |
| | barney | Cleartext-Password | betty | := |
| | dialrouter | Cleartext-Password | dialup | := |
+----+----------------+--------------------+------------------+------+
rows in set (0.01 sec) mysql> select * from radreply; +----+------------+-------------------+---------------------------------+------+
| id | UserName | Attribute | Value | Op |
+----+------------+-------------------+---------------------------------+------+
| | barney | Framed-IP-Address | 1.2.3.4 | := |
| | dialrouter | Framed-IP-Address | 2.3.4.1 | := |
| | dialrouter | Framed-IP-Netmask | 255.255.255.255 | := |
| | dialrouter | Framed-Routing | Broadcast-Listen | := |
| | dialrouter | Framed-Route | 2.3.4.0 255.255.255.248 | := |
| | dialrouter | Idle-Timeout | | := |
+----+------------+-------------------+---------------------------------+------+
rows in set (0.01 sec) mysql> select * from radgroupreply;
+----+-----------+--------------------+---------------------+------+
| id | GroupName | Attribute | Value | Op |
+----+-----------+--------------------+---------------------+------+
| | dynamic | Framed-Compression | Van-Jacobsen-TCP-IP | := |
| | dynamic | Framed-Protocol | PPP | := |
| | dynamic | Service-Type | Framed-User | := |
| | dynamic | Framed-MTU | | := |
| | static | Framed-Protocol | PPP | := |
| | static | Service-Type | Framed-User | := |
| | static | Framed-Compression | Van-Jacobsen-TCP-IP | := |
| | netdial | Service-Type | Framed-User | := |
| | netdial | Framed-Protocol | PPP | := |
+----+-----------+--------------------+---------------------+------+
rows in set (0.01 sec)

 大功告成!!!!

在ubtunu使用apt-get安装和配置freeradius的更多相关文章

  1. 烂泥:redis3.2.3安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自 ...

  2. Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016

    Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Att ...

  3. CentOS 7 上安装 redis3.2.3安装与配置

    前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自身集群的功能. 而现在最新的项目是需要redis集群的,这篇文章我们就来介绍下有关redis的安装与配置. 一. ...

  4. Ubuntu的安装与配置

    一.Ubuntu的安装与配置 Ubuntu 快速下载地址 1.安装VMwareTools 系统安装后,工具栏"虚拟机"-->"安装VMwareTools" ...

  5. FreeBSD从零开始---安装后配置(一)

    一.安装后配置   上次我们说到FreeBSD的安装,这次我们说FreeBSD安装后的配置和简单优化方法.   安装完BSD只是服务器提供服务这条万里长征路的开始,还需要一些基本的设定和优化.不过实际 ...

  6. Ubuntu14.04安装和配置ROS Indigo(一)

    安装ROS 配置Ubuntu的软件源 配置Ubuntu要求允许接受restricted.universe和multiverse的软件源,可以根据下面的链接配置: https://help.ubuntu ...

  7. Debian 入门安装与配置1

    Debian 入门安装与配置1 最近安装了多个发行版本的Linux,包括Ubuntu.Fedora.Centos和Debian,发现只有Debian在界面和稳定性等综合特性上表现最优,自己也最喜欢,所 ...

  8. ArchLinux安装与配置小结

    最近无意间发现一个基于ArchLinux的发行版--BlackArch,主题十分炫酷(中二).当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多 ...

  9. LXD 2.0 系列(二):安装与配置

    导读 简单来说,LXD是一个守护进程,为LXC容器的管理提供一组REST API.主要目标是提供一种类虚拟机的用户体验,是一种第三方的容器管理工具.下面呢,我们来介绍LXD 2.0 的安装与配置 安装 ...

随机推荐

  1. bzoj:1661 [Usaco2006 Nov]Big Square 巨大正方形

    Description 农民 John 的牛参加了一次和农民 Bob 的牛的竞赛.他们在区域中画了一个N*N 的正方形点阵,两个农场的牛各自占据了一些点.当然不能有两头牛处于同一个点.农场的目标是用自 ...

  2. AtCoder Beginner Contest 069【A,水,B,水,C,数学,D,暴力】

    A - K-City Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement In K-city, ...

  3. AMD规范学习笔记

    背景 NodeJS的一套比较简洁 Moudles 规范, 使得在服务器端的模块化变得更加简单.很长一段时间,很多公司或者项目都有自己的一套模块化机制, 却未能形成一套统一的标准, NodeJS的Mou ...

  4. sql for xml 输出结果带单引号出现转成&apos的解决方案

    select '''' + ID +''',' from  表 for xml path('') 此SQL语句,输出结果如‘1’,’2‘,’3‘, 但是在因xml会出现path转译的问题将‘转成&am ...

  5. WPF DataTrigger数据触发器

    1.通过绑定的属性值变化,动态改变界面的显示,比如绑定了IsExpanded,当为true,grid高度变成600,反之,grid高度变成320. <Grid.Style> <Sty ...

  6. 关于keil5使用注意事项(预定义、路径包含)

    2017.12.17  下午 终于在不用keil5自带添加库的基础上0 error的新建了一个工程.磕磕绊绊搞了快一个下午,各种小问题搞到崩溃. 首先是库文件添加路径的问题 ,只要是你工程中用到的头文 ...

  7. PHP中的GetType和SetType

    大部分的可变函数都是用来测试一个函数的类型的.PHP中有两个最常见的函数,分别是gettype()和settype().这两个函数具有如下所示的函数原型,通过他们可以获得要传递的参数和返回的结果. s ...

  8. linux服务器,svn认证失败,配置问题,防火墙等等

    之前自己还真没设置过SVN,今天亲自动手,错误百出,真是够头疼的.在网上随便找了一篇文章,就按照文章介绍开始安装.怎么安装和设置我就不说了,这里主要记录遇到的问题. 1.不知道该怎么设置 svn:// ...

  9. Mysql开启远程连接方法

    分类: 数据库开发技术 解决MySQL不允许从远程访问的方法 开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要 ...

  10. windows下github 出现Permission denied (publickey).解决方法

    今天在学习github的时候遇到了一些问题,然后爬了一会,找到了解决方法记录下来,以防忘记,当然能帮助别人最好啦! github教科书传送门:http://www.liaoxuefeng.com/wi ...