1. RADIUS简介

RADIUS的全称为Remote AuthenticaTIon Dial-In User Service,是一种能够让服务器验证各种接入用户身份的协议,RADIUS可以对用户身份进行集中管理,安全性更好,策略也更灵活,同时还可以记录用户的网络使用情况用于网管分析或者计费,已经成为比较常用的工业标准。在使用中,路由器、交换机等设备在需要验证用户身份的时候,向RADIUS服务器发送请求,RADIUS服务器则返回用户的相关信息,交给路由器、交换机等设备处理。

在本文中,我们将基于Ubuntu(Linux的一个比较流行的发行版本),以FreeRADIUS+MySQL+OpenSSL搭建一个RADIUS服务器,其认证方式是PEAPv0/EAP-MSCHAPv2。

本文中所用的Linux及软件的版本如下:

OS:Ubuntu 8.04 (Linux Kernel 2.6.24-21)

FreeRADIUS:FreeRADIUS 1.1.7

FreeRADIUS-MySQL:FreeRADIUS-MySQL 1.1.7

MySQL:MySQL 5.0.51a

OpenSSL:OpenSSL 0.9.8g (操作系统自带)

2. 安装RADIUS

安装完Ubuntu8.04后,首先更新管理器,在终端输入如下命令:

sudo apt-get update

sudo apt-get dist-upgrade

安装基本的编译环境,命令如下:

sudo apt-get install build-essenTIal autoconf automake1.9 cvs subversion

apt-get install dpkg-dev

安装MySQL,命令如下:

sudo apt-get install mysql-server mysql-client

#安装过程中按提示设定管理MySQL数据库的密码(如123456)

安装FreeRADIUS:

从FreeRADIUS的官方网站http://freeradius.org下载FreeRADIUS 1.1.7。然后在终端输入如下命令:

tar zxvf freeradius-1.1.7.tar.gz

cd freeradius-1.1.7

fakeroot dpkg-buildpackage -b –uc

#提示缺少什么包就通过 apt-get install 安装什么包

cd ..

dpkg -i freeradius_1.1.7-0_i386.deb freeradius-mysql_1.1.7-0_i386.deb

3. 配置FreeRADIUS

修改配置文件:/etc/freeradius/radiusd.conf(注意如果在文件末尾修改的话,后面的值不会覆盖前面的值,所以要直接在原位置上修改),需更改的几个log项:

log_auth = yes

log_auth_badpass = yes

log_auth_goodpass = yes

适当延长发送认证失败消息之前的暂停秒数,防止暴破,默认为1秒。

reject_delay = 5

把authorize、accounTIng、session、post-auth几个部分中sql一句前的注释取消掉,启用MySQL认证。

修改配置文件:/etc/freeradius/clients.conf,设置允许使用radius服务的设备,一般是AP的IP地址,secret是AP连接radius的密码,在配置文件最后添加如下语句:

client 192.168.0.0/24 {     secret = tesTIng123     shortname = dlink     nastype = other }

修改配置文件:/etc/freeradius/eap.conf,将tls,ttls,peap三段的注释全部取消,这是启用PEAP的关键。

修改配置文件:/etc/freeradius/users,修改users文件中的如下内容:

#DEFAULT Auth-Type = System

#Fall-Through = 1

修改配置文件:/etc/freeradius/sql.conf,设置与MySQL相关的信息:

server = "localhost"

login = "radius"

password = "radius"

4. 配置MySQL

先建库和用户,命令如下:

mysql -u root –p123456

…………

mysql> create database radius;

mysql> GRANT ALL PRIVILEGES ON radius.* to radius@localhost IDENTIFIED BY ‘radius’;

mysql> FLUSH PRIVILEGES;

mysql> exit;

创建radius相关的表和初始数据:

将/usr/share/doc/freeradius/examples/mysql.sql.gz解压,将解压后的mysql.sql导入radius数据库,命令如下:

cd /usr/share/doc/freeradius/examples/

mysql -u radius -pradius radius 表结构创建好之后,就可以创建使用者账号了,默认是存储在radcheck表中的,可以使用这样的命令和sql语句:

mysql -u radius -pradius radius

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

…………

mysql> select * from radcheck

+-+———–+—————–+–+—–+

|id|UserName|Attriubute   |op |Value|

+-+———–+—————–+–+—–+

| 1|test     |User-Password|:= |test  |

+-+———–+—————–+–+—–+

现在重启freeradius服务,可以简单测试一下(test1/test1是错误的用户名/密码,testing123是默认在clients.conf中定义的本机用户的secret),在终端输入如下命令:

radtest test1 test1 localhost 0 testing123

Sending Access-Request of id 5 to 127.0.0.1 port 1812

User-Name = "test1"

User-Password = "test1"

NAS-IP-Address = 255.255.255.255

NAS-Port = 0

Re-sending Access-Request of id 5 to 127.0.0.1 port 1812

User-Name = "test1"

User-Password = "test1"

NAS-IP-Address = 255.255.255.255

NAS-Port = 0

rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=5, length=20

可以看到服务器接收到了请求,并返回了用户名/密码=test1/test1的reject信息。

5. 无线AP的设置

主要设置项如下:

Secrity Mode: WPA2

Clipher Type: AES(比TKIP方式更加安全)

RADIUS Server IP/Secret: RADIUS服务器所在的IP以及在“clients.conf”中设置的对应的“secret”。

6. 客户端设置

无线网络连接属性->无线网络配置Tab页->首选网络(属性)->关联Tab页,网络验证:WPA2,数据加密:AES;

然后在“验证”Tab页,EAP类型:受保护的EAP(PEAP),在属性中,不选“验证服务器证书”,选择“启用快速重新连接”,验证方法:安全密码(EAP-MSCHAP v2),并在“配置”中不选择“自动使用windows登录名和密码”。

配置步骤截图如下所示:

登录的时候,状态栏上会弹出提示用户更换凭证的小图标,其实就是提示用户输入用户名/密码(如test/test)。

radius peap mysql_基于Linux Ubuntu的RADIUS服务器搭建相关推荐

  1. linux服务器搭建_基于LINUX系统的邮件服务器搭建和详细部署(POSTFIX)

    linux master调度所有的程序: master-->pickup/cleanup-->rewrite..... /etc/postfix/master.cf # ls /etc/p ...

  2. 构建基于Linux平台的开源×××服务器

    实验名称:构建基于Linux平台的开源×××服务器 实验目标:一.基于Linux配置poptop ×××与管理 二.基于Linux配置Openswan ×××与管理 ×××的功能:加密数据 信息认证和 ...

  3. 基于linux实现DNS互联网的搭建

    基于linux实现DNS互联网的搭建 实验 实现DNS互联网的搭建,在客户端使用浏览器(links www.wrz.com)可以访问到www主机的网站. 客户端 172.17.0.148 Local ...

  4. Linux学习之云服务器搭建嵌入式Linux开发环境

    Linux学习之云服务器搭建嵌入式Linux开发环境 第一步:购买云服务器 进入腾讯云官方网站腾讯云官方网站 选择云+校园云+校园 进入控制台 将云服务器系统设置为Ubuntu系统 使用Xshell6 ...

  5. Linux网络实战——Samba服务器搭建

    Linux网络实战--Samba服务器搭建 安装Samba服务软件 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Message ...

  6. Linux下的DNS服务器搭建

    Linux下的DNS服务器搭建 一.DNS介绍 1.dns域名系统 2.正向解析和反向解析 二.检查环境 三.搭建主DNS 1.安装dns相关包 2.设置服务开机自启 3.编辑DNS主配置文件 4.编 ...

  7. ubuntu常用的服务器搭建

    ubuntu常用的服务器搭建 一.FTP服务器 1.新建ftp服务器访问的文件夹目录 sudo mkdir /var/ftp/public sudo chmod 777 /var/ftp/public ...

  8. Linux操作系统实践——Samba服务器搭建

    文章目录 Linux操作系统实践--Samba服务器搭建 一.实验目的 二.实验内容 ② 学生教师服务 三. 题目分析及基本设计过程分析 ② 学生教师服务 1) 整体思路 2) 系统用户和组分配设计说 ...

  9. Linux下的SVN服务器搭建

    鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...

  10. linux作服务器的论文,基于Linux下的各种服务器技术及配置.rar

    摘要:Linux的基本思想有两点:第一,一切都是文件:第二,每个软件都有确定的用途.其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令.硬件和软件设备.操作系统.进程等等对于操作系统内核而言 ...

最新文章

  1. 微软某程序员吐槽:如果毕业去字节,现在总包150万!如今一年才50万,看见字节的人都抬不起头!...
  2. 通俗解释随机森林算法
  3. XHTML学习笔记 Part2:核心元素
  4. 文件上传案例优化(文件命名循环接收多线程提高效率)
  5. c语言 整型转bool,C语言的布尔类型(_Bool)【转】
  6. oracle rac fail,Oracle RAC Load Balance , Fail Over测试
  7. bat怎么发起网络请求_因为一个跨域请求,我差点丢了饭碗
  8. 用python编程、假设一年期定期利率_《Python程序设计》题库.pdf
  9. android中的imagebutton,Android:以编程方式在ImageButton中设置图像的填充
  10. 对抗机器学习—— 迭代FGSM
  11. 没有DOI,只有卷期号时的IEEE期刊论文查找方法
  12. Windows下把文件夹压缩成.tar.gz格式
  13. php 减号,PHP编码转换减号(连接符)无法转换问题
  14. nagios 监控内存和CPU,磁盘等使用情况
  15. 46-Java-RabbitMQ
  16. 教你用python截屏APP,将截取到的图片进行文字识别并将信息保存在EXCEL中。(附源码)
  17. html5制作线路图,HTML5画一个简单呢好看的电路图
  18. 【解决方案】快递代收点部署视频监控,EasyCVR视频融合平台来助力
  19. BERT-BiLSTM-CRF模型代码
  20. 485串口服务器协议,RS485串口服务器

热门文章

  1. 开源免费录屏软件整理
  2. 100套Java毕业设计和课程设计项目案例(包含项目源码)
  3. erc20钱包下载_Newdex实用贴:如何把ERC20上的KEY转换到Newdex交易
  4. Javaweb图书管理系统的设计与实现(含毕业设计)
  5. c语言程序设计必备单词,(完整版)C语言编程必背单词.docx
  6. 【Latex】Latex小论文模板
  7. 百科园c语言题库13164,C语言题库-编程
  8. ITIL 4 讲解:服务目录
  9. 二进制算法——模二运算
  10. 批量下载css文件中的图片