FreeRADIUS介绍

RADIUS( Remote Access Dial In User Service) Protocol主要用来提供认证(Authentication)机制,用来辨认使用者的身份与密码,确认通过之后,经由授权(Authorization)使用者登入网域使用相关资源,并可提供计费(Accounting)机制,保存使用者的网络使用记录。Radius协议详细介绍可参见RFC2865,RFC2866。 FreeRadius是一款OpenSource软件,基于Radius协议,实现Radius AAA(Authentication,Authorization,Accounting)功能。

FreeRADIUS的功能

FreeRADIUS支持的认证方法:

本地文件 本地DB/DBM数据库 LDAP 数据库 本地可执行程序(比如一个CGI程序) Perl 程序 Python 程序 SQL 数据库

  • Oracle
  • MySQL
  • PostgreSQL
  • Sybase
  • IBM DB2
  • Any iODBC or unixODBC supported database

FreeRADIUS支持的认证类型

  • 本地配置文件中的明文密码(PAP)
  • 本地配置文件中的加密密码
  • CHAP
  • MS-CHAP
  • MS-CHAPv2
  • windows域控制器认证
  • 代理到其他RADIUS服务器
  • 系统认证(通常通过/etc/passwd)
  • PAM(可插拔认证模块)
  • LDAP(只支持PAP)
  • CRAM
  • Perl 程序
  • Python程序
  • SIP Digest(Cisco VoIP,SER)
  • Netscape-MTA-MD5加密的密码
  • Kerberos 认证
  • X9.9认证环

EAP无线的嵌入式认证方法

  • EAP-MD5
  • CISCO LEAP
  • EAP-MSCHAP-V2
  • EAP-GTC
  • EAP-SIM
  • EAP-TLS
  • EAP-TTLS
  • EAP-PEAP

计费方法

计费数据能被同步记录到不同的数据库。以下的计费记录方法都是FreeRADIUS支持的:

  • 本地’detail’文件
  • 本地’wtmp’和’utmp’文件
  • 代理到其他RADIUS服务器
  • 复制到一台或者多台RADIUS服务器
  • SQL数据库
  • Oracle
  • MySQL
  • PostgreSQL
  • Sybase
  • DB2
  • 任何iODBC或者unixODBC支持的数据库

Freeradius安装及配置说明

Turbolinux GTES10.5安装光盘中已包含freeradius-1.0.1-2.2.i386.rpm,下面将以freeradius和MySQL的应用方案为例进行安装说明:

Freeradius安装

# rpm –ivh freeradius-1.0.1-2.2.i386.rpm

MySQL安装

进入MySQL数据库,创建名称为radius的数据库:

# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.1.17-beta-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database radius

导入数据库表结构

编辑/usr/share/doc/freeradius-1.0.1/db_mysql.sql,去掉nas建表脚本中的id 字段定义中,去掉 default ‘0’ 字符。

# mysql -uroot radius < /usr/share/doc/freeradius-1.0.1/db_mysql.sql

Freeradius配置

/etc/raddb/radiusd.conf

Radiusd.conf是freeradius的主要配置文件,包括了下面主要配置内容: 安全配置

security {max_attributes = 200     /*允许一个Radius包中包含的属性数量/*0表示允许任意数量的属性reject_delay = 1            /*回复Access-Reject包延时时间(1-5)/*0表示马上送Access-Reject包status_server = no            /*是否开启Status-Server请求应答功能
}

线程池配置

thread pool {start_servers = 5               /*Radius Server启动时运行线程的数量max_servers = 32              /*运行时最大允许启动线程的数量min_spare_servers = 3          /*备用Server最低阀值max_spare_servers = 10           /*备用Server最高阀值max_requests_per_server = 0      /*每个线程处理的最大请求数,达到该请求/*数后,该线程会退出,0表示不退出
}

初始化模块启动配置

authorize {Preprocess             /*预处理模块Chap                 /*chap认证处理模块Mschap                  /*mschap认证处理模块Sql                       /*读取数据库中的用户进行认证
}
/etc/raddb/clients.conf

下面配置是以本机作为NAS,进行配置。

client 127.0.0.1 {secret          = testing123       /*NAS与Freeradius之间通讯的密钥。shortname       = localhost            /*NAS名称nastype      = other            /*NAS类型
}
/etc/raddb/sql.conf
sql {driver = "rlm_sql_mysql"        /*使用的数据库类型,当前表示MySQLserver = "127.0.0.1"          /*数据库服务器地址login = "root"                 /*连接数据库使用的用户名password = ""                   /*连接数据库的密码radius_db = "radius"           /*数据库名称
      acct_table1 = "radacct"         /*计费开始时写记录到此表acct_table2 = "radacct"         /*计费结束时写记录到此表
      num_sql_socks = 5               /*启动数据库连接数量
.
.
.
}

Freeradius使用举例

在数据库中添加用户test,密码,123456,通过freeradius对该用户进行认证。

Insert into radcheck (username,attribute,op,value) values ('test','User-Password','==','123456');

使用下面指令启动freeradius server

# radiusd –xx (-xx表示启动debug模式)

使用freeradius自带客户端测试程序radtest作为客户端进行测试

# radtest test 123456 localhost 0 testing123
Sending Access-Request of id 48 to 127.0.0.1:1812User-Name = "test"User-Password = "123456"NAS-IP-Address = turbo200NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=48, length=20

Freeradius Server端显示LOG信息如下:

Thread 1 got semaphore
Thread 1 handling request 10, (3 handled so far)User-Name = "test"User-Password = "123456"NAS-IP-Address = 255.255.255.255NAS-Port = 0
Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 10
modcall[authorize]: module "preprocess" returns ok for request 10
modcall[authorize]: module "chap" returns noop for request 10
modcall[authorize]: module "mschap" returns noop for request 10rlm_realm: No '@' in User-Name = "test", looking up realm NULLrlm_realm: No such realm "NULL"
modcall[authorize]: module "suffix" returns noop for request 10
rlm_eap: No EAP-Message, not doing EAP
modcall[authorize]: module "eap" returns noop for request 10
radius_xlat:  'test'
rlm_sql (sql): sql_set_user escaped user --> 'test'
radius_xlat:  'SELECT id,UserName,Attribute,Value,op FROM radcheck WHERE Username = 'test' ORDER BY id'
rlm_sql (sql): Reserving sql socket id: 4
radius_xlat:  'SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op  FROM radgroupcheck,usergroup WHERE        usergroup.Username = 'test' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id'
radius_xlat:  'SELECT id,UserName,Attribute,Value,op FROM radreply WHERE Username = 'test' ORDER BY id'
radius_xlat:  'SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op  FROM radgroupreply,usergroup WHERE   usergroup.Username = 'test' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id'
rlm_sql (sql): Released sql socket id: 4
modcall[authorize]: module "sql" returns ok for request 10
modcall: group authorize returns ok for request 10
auth: type Local
auth: user supplied User-Password matches local User-Password
Sending Access-Accept of id 48 to 127.0.0.1:32769
Finished request 10
Going to the next request
Thread 1 waiting to be assigned a request

FreeRADIUS介绍相关推荐

  1. Reconfigure CentOS+freeradius+daloradius again

    Make some notes~ http://www.haiyun.me/archives/centos-freeradius-daloradius-ros.html 参照上文进行配置首先是http ...

  2. pptp mysql 认证_CentOS6.5搭建PPTP+Freeradius整合***管理系统

    1.搭建PPTP服务php 一.安装yum源mysql [root@Node ~]# cd /etc/yum.repos.d [root@Node ~]# wget http://mirrors.16 ...

  3. Ubuntu中使用freeradius配置RADIUS,并在RADIUS中配置LDAP 并实现AP认证

    RADIUS介绍 RADIUS(Remote Authentication Dial-In User Server,远程认证拨号用户服务)是一种分布式的.C/S架构的信息交互协议,能包含网络不受未授权 ...

  4. 用802.1X+FreeRadius+LDAP实现网络准入方案

    使用802.1X+FreeRadius+LDAP实现网络准入方案 作者:邓小林 前言:在很多运维项目交流中,我们发现有一些运维团队还是在尝试使用网管或桌面管理来进行网络准入管理,但这两个技术有一定的缺 ...

  5. 使用 freeradius 搭建 EAP PEAP MS-CHAPv2 验证环境

    企业级 Wi-Fi 搭建起来有点小复杂,我们知道自己家使用的 Wi-Fi 非常简单,几乎只需要配置一下热点的 SSID 和密码就可以了,实际上这是两种 Wi-Fi 认证类型.想要快速部署企业级 Wi- ...

  6. Ubuntu下配置FreeRADIUS + PPTP/L2TP + Mysql + daloRADIUS

    PPTP/L2TP安装方法就不写了,前面好多文章都介绍了安装方法. 下面先安装FreeRADIUS-server Shell 1 2 3 4 5 6 7 #sudo apt-get install m ...

  7. 基于OpenWRT+FreeRadius+TinyRadius+Daloradius实现portal加radius安全认证

    OpenWRT+FreeRadius+TinyRadius+Daloradius实现portal加radius认证 想要实现的需求是:当接入网络时,需要跳转到自定义的portal认证页面,输入用户名和 ...

  8. linux系统下freeradius AAA认证服务器创建

    网上也有很多关于freeradius服务器的搭建过程,笔者试过很多次,但都无功而返,原因是他们的介绍过于笼统,即使一步不差的按照他们的方法进行搭建,也是漏洞百出,错误连篇.因此笔者写下这篇博文,以供大 ...

  9. LINUX指令集介绍

    本文是LINUX指令及应用.现在学习嵌入式LINUX的使用,首先我才知道我对指令集的不了解.还是要多补课的呀! 引自:http://jsjzx.cqit.edu.cn/neow/webs/zljj/1 ...

  10. freeradius pap mysql_[转载]RedHat as4常用应用之mysql+freeradius+cisco路由器

    RedHat as4常用应用之freeradius 一.概述 RADIUS( Remote Access Dial In User Service) Protocol主要用来提供认证(Authenti ...

最新文章

  1. 如何具体学习计算机视觉
  2. Decision Tree
  3. Linux启动界面切换:图形界面-字符界面(转)
  4. C语言IO流存储数据,C++的IO流
  5. 购物车完善版,客户余额及所购商品保存在文件
  6. brew 安装java8_mac使用brew安装Java8
  7. nginx 带宽_谈谈Nginx和LVS各自的优缺点以及使用
  8. JPA通用Dao类设计
  9. JQuery------jQuery.parseHTML()的使用方法
  10. CSDN论坛新手指南
  11. 《从零开始做抖音》 程然
  12. #!/bin/bash 和 #!/usr/bin/env bash 的区别
  13. 一台云服务器ECS如何绑定多个公网IP
  14. 东北大学C语言课程题库题解专栏目录
  15. 计算机所有计算都是在内存,计算机的所有计算都是在内存中进行的
  16. Speedoffice(PPT)怎么自定义设置幻灯片大小
  17. xsd 和 wsdl
  18. 梦之旅游戏攻略html5,《梦之旅1:梦境》攻略
  19. 第05章 深度卷积神经网络模型
  20. 前端模块化,有这一篇就够了(上)

热门文章

  1. struts2 通配符的配置方式
  2. ShFileOperation函数详解
  3. 通过端口查看进程和通过进程查看端口
  4. 计算机毕业设计 网吧计费管理系统 网吧管理系统 网吧管理系统java 网吧上机管理系统 网吧计费系统 网吧系统 网吧收费管理系统 网咖系统 网咖管理系统 网咖计费系统 网咖收费管理系统
  5. 三星显示屏测试软件,MagicTune(三星显示器调节工具)
  6. oo结尾的单词发音规律
  7. 快速使用CSS技术手册
  8. linux下搭建阿帕奇服务器
  9. OS X桌面自动化神器:Hammerspoon for Mac
  10. Win7系统运行慢如何解决?——系统天地