处理Oracle数据库服务安全漏洞的几种方法

1、Ultra Search组件未明的漏洞

1.1、Ultra Search组件一般用于构建搜索引擎功能,如内网网站无需使用,请直接卸载ultra search组件,运行sql文件remove,

$ORACLE_HOME/ultrasearch/admin/wk0deinst.sql;

1.2、如仍需使用该组件,建议升级Oracle版本;

2、如无法升级,请限制IP访问来源:

2.1、通过SQLNET.ORA文件配置IP地址白名单,黑名单;

oracle配置访问白名单教程

出于提高数据安全性等目地,我们可能想要对oracle的访问进行限制,允许一些IP连接数据库或拒绝一些IP访问数据库。

当然使用iptables也能达到限制的目地,但是从监听端口变更限制仍可生效、只针对oracle自己不和其他端口的限制相混杂和不需要root账号这几方面来说,通过配置sqlnet.ora文件来进行访问限制可能是一种更好的选择。

2.1.1.配置sqlnet.ora文件

进入$TNS_ADMIN(一般对应的真实路径形如

/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin)

Windows server 平台下可以直接如下图方式找到

查看是否存在sqlnet.ora文件及是否已配置tcp.validnode_checking、tcp.invited_nodes、tcp.excluded_nodes项。

如果文件存在且已有这几项,则在此基础上修改这几项;如果文件存在但这几项不存在,则在最后追加;如果文件不存在则直接新建。

oracle默认是没有的,我们以没有为例新建该文件,并写入以下内容:

tcp.validnode_checking=yes

tcp.invited_nodes=(192.168.220.128,127.0.0.1)

tcp.excluded_nodes=(192.168.220.1)

  1. 127.0.0.1是指服务器本地的IP,也可以是本身的IP,否则监听不起作用
  2. tcp.validnode_checking--此项是启用IP合法检查,此项是必须配置的,如果不启用其他两项配了也没用。
  3. tcp.invited_nodes--此项是允许连接数据库的IP地址,多个地址用逗号(半角)隔开;如果启用此项,一定要配上本地地址不然监听无法启动。

如果想设置一个网段,可以试试使用%或?。如上面的192.168.220.128,可以写192.168.220.%或192.168.220.?

  1. tcp.excluded_nodes--此项是不允许连接数据库的IP地址,多个地址用逗号(半角)隔开;如果与tcp.invited_nodes有相同IP,则还是允许该IP访问数据库

tcp.invited_nodes和tcp.excluded_nodes其实可以只配置一项,当只配tcp.invited_nodes时就是白名单,在此项列表中的所有IP允许访问数据库,所有不在此项列表中的所有IP拒绝访问数据库;

当只配置tcp.excluded_nodes时,在此项列表中的所有IP拒绝访问数据库,所有不在此项列表中的所有IP允许访问数据库。

2.1.2.重新加载使配置生效

如果之前不存在sqlnet.ora则需要重启监听

在CMD命令窗口下直接执行以下命令

lsnrctl stop

lsnrctl start

如果之前存在sqlnet.ora则只需要重新加载配置即可

lsnrctl reload

关于重启和reload的区别,应该是监听完全停上和不完全停止的区别;使用stop/start当前所有已连接的会话会强制断开,reload不会断开已有会话。

如果服务器多,都要进行同一操作,把重启做成bat文件,双击即可

2.2、 通过触发器TRIGGER设置,IP地址和用户禁止登陆。

create or replace trigger logon_ip_control

after logon on database

declare

ip STRING(30);

user STRING(30);

begin

SELECT SYS_CONTEXT('USERENV','SESSION_USER') into user from dual;

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') into ip from dual;

if user='EPAY_USER'

THEN

IF ip not in ('192.168.219.20','192.168.219.22')

THEN raise_application_error(-20001,'User '||user||' is not allowed to connect from '||ip);

END IF;

END IF;

end;

知识点笔记

请关注微信公众号:qghktit

参考来源

黑白名单

https://www.cnblogs.com/lsdb/p/7729434.html

触发器

https://blog.csdn.net/dbanote/article/details/9231863

处理Oracle数据库服务安全漏洞的几种方法相关推荐

  1. oracle调整字段精度的四种方法

    oracle调整字段精度的四种方法: 01_执行用户_ddl/dml_表名_注释(建表/授权/同义词) 调整方式一:(精度只能调大不能调小) alter table table_name_a MODI ...

  2. oracle绑定主键,oracle添加主键的四种方法:

    oracle添加主键的四种方法: 列级,表级建立主键 drop table constraint_test; 1.create table constraint_test ( name_id numb ...

  3. Oracle查看执行计划的几种方法

    Oracle查看执行计划的几种方法 一般来说,有如下几种获取执行计划的方式: 1.AUTOTRACE方式 AUTOTRACE是Oracle自带的客户端工具SQL*Plus的一个特性.启用AUTOTRA ...

  4. oracle怎么看一个表结构,Oracle查看表结构的几种方法

    Oracle查看表结构的几种方法 1,DESCRIBE 命令 使用方法如下: SQLgt; describe nchar_tst(nchar_tst为表名) 显示的结果如下: Oracle查看表结构的 ...

  5. oracle如何对数据库进行备份,对Oracle数据库进行备份的两种方法详解

    首页 > 演讲稿 > 自我介绍演讲稿 > 对Oracle数据库进行备份的两种方法详解 对Oracle数据库进行备份的两种方法详解 时间:2019-05-05   来源:自我介绍演讲稿 ...

  6. JDBC读取新插入Oracle数据库Sequence值的5种方法

    Oracle的sequence实现非常灵活,所以也带来一些易用性问题,如何取到新插入记录生成的sequence值与其它数据库有较大差别,本文详国介绍了5种实现读取新插入记录sequence值的方法. ...

  7. oracle中有类似split的方法么,ORACLE中字符串split的一种方法

    一种方法是用函数:这里转帖网上摘抄的一个函数 CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000); CREATE OR REPLA ...

  8. Oracle补历史数据存储过程,Oracle数据库数据丢失恢复的几种方法总结

    根据oracle数据库的特点和提供的工具,主要方法有以下几种方法: 利用逻辑备份使用import工具丢失数据的表 利用物理备份来通过还原数据文件并进行不完全恢复 利用dbms_logmnr包从redo ...

  9. oracle数据表丢失数据库,Oracle数据库数据丢失恢复的几种方法总结

    根据oracle数据库的特点和提供的工具,主要方法有以下几种方法: 利用逻辑备份使用import工具丢失数据的表 利用物理备份来通过还原数据文件并进行不完全恢复 利用dbms_logmnr包从redo ...

最新文章

  1. 学习笔记-express路径问题
  2. spark中用println输出一些控制信息
  3. 3D渲染集群,听说过吗?
  4. 从零开始学keras之变分自编码器生成图像
  5. [Java] ArrayList、LinkedList、Vector的区别
  6. latex 错误: BibTeX: empty journal in Lv2021
  7. 【分析】浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别(SamWang)...
  8. 基于JavaWeb的小型超市管理系统的设计与实现
  9. Hugging Face:成为机器学习界的“GitHub”
  10. CSS设置背景颜色透明
  11. 战士的升级速度不可能同法师相比,道士相比也有一定差距
  12. d va爬黑板animate_对不起,我把APP也给爬了
  13. VTCP QIO技术解析
  14. python菜鸟教程mac安装_Python菜鸟教程 | 多平台安装
  15. 新马華人的姓名大多用方言拼音,所以显得很混乱
  16. Java集合框架——List接口
  17. mysql 修改字段值语句_mysql修改字段语句
  18. c语言解除指针引用什么意思,“解引用”指针是什么意思?
  19. 利用K-means进行图像压缩
  20. HTC G7(Desire) Android 2.2 开启APP2SD最安全的方法(软件安装到SD卡)

热门文章

  1. 内存泄漏试试AScan
  2. K8S篇-安装Syncthing
  3. 单片机毕设选题 stm32便携用电功率统计系统 - 物联网 嵌入式
  4. 组合逻辑中的 竞争冒险问题
  5. 【OMNET++】OMNET安装卸载说明以及原理探讨
  6. c语言农历的算法,农历一百年算法(1921~2021)【C语言代码】
  7. 计算机毕业设计之二手书交易系统
  8. 如何新建编辑页 cnn_cifar_my_2019双11大促官方承接页设置教程
  9. 凤凰卫视:收受瑞星巨额贿赂官员被捕视频
  10. iOS开发笔记——PDF的显示和浏览