freeradius + oracle 无限认证
Radius安装配置维护文档
一、下载软件包
freeradius-server-3.0.9.tar.gz和talloc-2.1.3.tar.gz
二、配置/root目录下的.bash_profile文件,添加如下内容
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.4
export ORACLE_SID=radiusdb
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
三、编译安装
1、 安装talloc
./configure --prefix=/usr/local/talloc
make;make install
2、 安装freeradius
1) 进入freeradius-server-3.0.9/src/modules/rlm_sql/drivers/rlm_sql_oracle目录
2) 执行./configure --with-oracle-include-dir=/u01/app/oracle/product/11.2.4/rdbms/public --with-oracle-lib-dir=/u01/app/oracle/product/11.2.4/lib,编译oracle连接驱动库文件
3) 在freeradius-server-3.0.9目录下执行
./configure --with-oracle-include-dir=/u01/app/oracle/product/11.2.4/rdbms/public --with-oracle-lib-dir=/u01/app/oracle/product/11.2.4/lib --with-talloc-lib-dir=/usr/local/talloc/lib/ --with-talloc-include-dir=/usr/local/talloc/include --with-openssl=no
make;make install
3、 freeradius配置
1) 进入/usr/local/etc/raddb,编辑文件clients.conf,sites-available/default,mods-available/sql
2) Client.conf文件
添加如下内容:
client test {
ipaddr = 10.55.0.0/16
secret = testing
}
定义可接入radius的客户端ip
3) sites-available/default
将该文件中authorize、eap、accounting、session、post-auth模块中sql前的注释全部去掉,让radius使用数据库进行验证。
4) mods-available/sql(配置文件中的红字部分需做修改)
sql {
driver = "rlm_sql_oracle" #数据库驱动使用oracle
dialect = "oracle"
server = "10.55.1.3"
# port = 3306
login = "radius"
password = "123456"
# Database table configuration for everything except Oracle
# radius_db = "radius" #这行注释掉
# If you are using Oracle then use this instead
radius_db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.55.1.3)(PORT=1521))(CONNECT_DATA=(SID=radiusdb)))"
# radius_db = "dbname=radius host=localhost user=radius password=raddpass"
acct_table1 = "radacct"
acct_table2 = "radacct"
# Allow for storing data after authentication
postauth_table = "radpostauth"
# Tables containing 'check' items
authcheck_table = "radcheck"
groupcheck_table = "radgroupcheck"
# Tables containing 'reply' items
authreply_table = "radreply"
groupreply_table = "radgroupreply"
# Table to keep group info
usergroup_table = "radusergroup"
# read_groups = yes
# read_profiles = yes
# Remove stale session if checkrad does not see a double login
delete_stale_sessions = yes
# Write SQL queries to a logfile. This is potentially useful for tracing
# issues with authorization queries.
# logfile = ${logdir}/sqllog.sql
# sql1 {
# ...
# pool {
# ...
# }
# }
#
# # sql2 will use the connection pool from sql1
# sql2 {
# ...
# pool = sql1
# }
#
pool {
start = ${thread[pool].start_servers}
min = ${thread[pool].min_spare_servers}
max = ${thread[pool].max_servers}
spare = ${thread[pool].max_spare_servers}
uses = 0
retry_delay = 30
lifetime = 0
idle_timeout = 60
}
# read_clients = yes
client_table = "nas"
# group_attribute = "${.:instance}-SQL-Group"
group_attribute = "SQL-Group"
$INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf
}
4) 在mods-enabled文件夹中做mods-available/sql的软连接
sql -> ../mods-available/sql
5) 切换到oracle用户,进入到mods-config/sql/main/oracle目录下,运行schema.sql脚本,创建应用表。
四、radius维护
1、 停机重启
1) 重启数据库
切换到oracle账户
#su - oracle
$sqlplus / as sysdba
SQL>startup
启动监听
$lsnrctl start
检查监听状态,有显示红字部分即为正常。
$lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 20-AUG-2015 10:27:27
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Radius)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 20-AUG-2015 10:20:15
Uptime 0 days 0 hr. 7 min. 12 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.4/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/Radius/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Radius)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "radiusdb" has 1 instance(s).
Instance "radiusdb", status READY, has 1 handler(s) for this service...
Service "radiusdbXDB" has 1 instance(s).
Instance "radiusdb", status READY, has 1 handler(s) for this service...
The command completed successfully
切换为root账户,执行radiusd启动radius服务
#radiusd
检查1812、1813端口是否存在
#netstat –lntup|grep 1812
如果存在即为正常,如果失败检查/usr/local/var/log/radius/radius.log日志文件
freeradius + oracle 无限认证的更多相关文章
- ORACLE OCP认证
基本情况介绍 Oracle产品非常多,这里说的是Oracle数据库认证体系. Oracle数据库认证体系包括3层,分别是OCA(助理),OCP(专家),OCM(大师) 一般情况下,需一级一级认证,也就 ...
- oracle登陆认证方式
转自:http://blog.itpub.net/14359/viewspace-683064/ 案例: 1,发现此时操作系统认证不成功: C:\Users\Administrator.WIN-201 ...
- Oracle OS认证 口令文件 密码丢失处理
Oracle OS认证 口令文件 密码丢失处理 分类: Oracle Basic Knowledge2009-10-19 14:24 5031人阅读 评论(9) 收藏 举报 oracleos数据库sq ...
- Oracle登录认证
oracle 登录认证 Table of Contents 1. 简介 2. authentication_services 2.1. 不同登录方式的写法 3. sysdba角色登录认证 3.1. 无 ...
- 使用JDBC实现Oracle用户认证
两天时间写的小品,以前的J2EE环境基本使用框架.现在使用JDBC配合Oracle存储过程模拟了一下用户注册和用户认证. 一.添加必须的jar包 需要JDBC连接Oracle的包和shiro-core ...
- Oracle身份认证方式
Oracle对于普通账户和超级管理员(指sysdba和sysoper)的认证机制不一样,前者是通过数据字典,后者主要是通过操作系统验证和密码文件验证.因此一般提到操作系统认证或密码文件认证,针对的都是 ...
- ASP.NET MVC5+ORACLE 身份认证
菜鸟来的,刚接触mvc,看到mvc5上默认带有identity身份验证的东西,公司用的oracle数据库,便想着东西能不能支持oracle数据库,折腾了半天弄出下面的东西来,有些东西可能不太准确,望大 ...
- Freeradius+Cisco2500AC+OpenLdap认证
为了将公司内部认证统一化,启用了802.1x认证,认证流程如下: UserClient->AC控制器->Freeradius->OpenLdap 其中: Freeradius做认证使 ...
- Oracle OS认证和口令文件认证方法
OS认证 1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN文件夹中)文件里,使用vi编辑,凝视掉#SQLNET.AUTHENTICATION_SERVICES = ...
随机推荐
- SSE指令集优化学习:双线性插值
对SSE的学习总算迈出了第一步,用2天时间对双线性插值的代码进行了优化,现将实现的过程梳理以下,算是对这段学习的一个总结. 1. 什么是SSE 说到SSE,首先要弄清楚的一个概念是SIMD(单指令多数 ...
- 【Kylin实战】Hive复杂数据类型与视图
1. 引言 在分析广告日志时,会有这样的多维分析需求: 曝光.点击用户分别有多少? 标签能覆盖多少广告用户? 各个标签(标注)类别能覆盖的曝光.点击在各个DSP上所覆盖的用户数 -- 广告数据与标签数 ...
- CSS3透明属性opacity
例子: <div id="fixhovertree" style="position:fixed;left:100px;width:120px;top:100px; ...
- 【C#进阶系列】24 运行时序列化
序列化是将对象或者对象图(一堆有包含关系的对象)转换成字节流的过程.而反序列化就是将字节流转为对象或对象图. 主要用于保存.传递数据,使得数据更易于加密和压缩. .NET内建了出色的序列化和反序列化支 ...
- 番外一:关于thinkphp框架下的文件导入路径问题
总的来说,要使在thinkphp框架下面HTML导入的图片.css文件和js文件有效,只有两种方法:(1)使用绝对路径:(2)在项目目录下创建新目录Public,把所有的img文件夹.js文件夹和cs ...
- python之redis和memcache操作
Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...
- Lind.DDD.API核心技术分享
回到目录 关于Lind.DDD框架里API框架的技术点说明 讲解:张占岭 花名:仓储大叔 主要框架:Lind.DDD 目录 关于Lind.DDD.Authorization 关于授权的原理 关于Api ...
- VS 快捷键
项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加 ...
- Java基础学习 -- 接口
interface是一种特殊的class 接口是纯抽象类 所有的成员函数都是抽象函数: 所有的成员变量都是public static final; 接口是为了方便类的调用 一个类如果要去实现某个接口, ...
- kmdjs api reference
总览 kmdjs的主要就两个API:kmdjs.config和define kmdjs.config kmdjs.config是用于项目整体配置,一般的配置如下所示: kmdjs.config({ n ...