0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种方法教你限制某个IP或IP段访问Oracle数据库

如意 来源:ITPUB 作者:佚名 2020-09-03 10:16 次阅读

01概述

本文将给大家介绍如何限制某个ip或某个ip段才能访问Oracle数据库

通过sqlnet.ora

通过/etc/hosts.deny和/etc/hosts.allow

通过iptables

02正式实验

本次实验环境是Centos6.10 + Oracle 11.2.0.4单实例,数据库服务器ip地址为192.168.31.71

1. 通过sqlnet.ora

a. 关闭数据库服务器上的防火墙,修改sqlnet.ora文件该文件放在$ORACLE_HOME/network/admin下,如果没有就在该目录下创建一个即可添加以下两行

tcp.validnode_checking = yes

tcp.invited_nodes = (192.168.31.71, 192.168.31.77)

这里需要注意的是必须把本机ip地址加进来(不能写成localhost和127.0.0.1),否则监听启动会报错。

b. 重启监听,让sqlnet.ora的修改生效

lsnrctl stop

lsnrctl start

设置之后就只有这两个ip地址192.168.31.71, 192.168.31.77能访问数据库,其它ip地址访问会报ORA-12547: TNS:lost contact错误

tcp.invited_nodes的意思是开通白名单,不在白名单中的一律拒绝访问,它也可以写成(192.168.31.*, 192.168.31.0/24)等方式,表明这个网段都能访问。

另外还有个参数tcp.excluded_nodes,表示黑名单,这里不做介绍,有兴趣的可以自己去做做实验。

2. 通过/etc/hosts.deny和/etc/hosts.allow

sqlnet.ora属于数据库层面的限制,但如果一个ip能够使用root或者oracle,ssh到这台数据库服务器的话,那么它依然能够访问数据库。为了避免这种情况,这时就需要通过/etc/hosts.allow和/etc/hosts.deny去限制某个ip或者ip段才能ssh访问数据库服务器先删除前面实验添加的sqlnet.ora,然后重启监听

lsnrctl stop

lsnrctl start

a. 修改/etc/hosts.deny

在文件尾部添加一行

all:all:deny

第一个all表示禁掉所有使用tcp_wrappers库的服务,举例来说就是ssh,telnet等服务。

第二个all表示所有网段。

b. 修改/etc/hosts.allow

在前面一步中我禁掉所有的网段,所以在这一步中要开通指定的网段。

修改/etc/hosts.allow,在文件尾部添加

all:192.168.31.71:allow a

ll:192.168.31.47:allow

格式与hosts.deny一样,第一行表示把本机放开,第二行表示给.47开通白名单

下面用我另外一台机器(即不在allow中的)ssh或telnet连接71这个机器,就会出现如下报错

三种方法教你限制某个IP或IP段访问Oracle数据库

连数据库却不受影响,因为数据库服务不归hosts.deny和hosts.allow管

三种方法教你限制某个IP或IP段访问Oracle数据库

其中ip地址也可以换成以下的写法

通配符的形式 192.168.31.*表示192.168.31这个网段

网段/掩码 192.168.31.0/255.255.255.0也表示192.168.31这个网段

3. 通过iptables

sqlnet.ora能够限制数据库的访问,/etc/hosts.deny和/etc/hosts.allow能够限制ssh的访问,那有没有办法既能限制数据库的访问,也能限制ssh的访问呢,答案就是linux自带的防火墙功能了。为了实验,将前面做的修改全部清除。

使用root执行以下命令

service iptables start # 打开防火墙服务iptables -I INPUT -s 192.168.31.0/24 -p tcp --dport 1521 -j ACCEPT # 允许192.168.31网段的ip访问本机1521端口iptables -I INPUT ! -s 192.168.31.0/24 -p tcp --dport 22 -j DROP # 拒绝非192.168.31网段的ip访问本机22端口service iptables save # 规则保存到配置文件/etc/sysconfig/iptables中

这样就同时限制了其它ip对服务器的ssh和数据库访问一些扩展知识:

iptables -L -n --line-numbers # 查看当前系统中的iptablesiptables -D INPUT 2 # 删除input链中编号为2的规则,编号数字可以通过上一个命令得到

03总结

如果只是限制其它ip对数据库的访问,使用sqlnet.ora

如果要限制其它ip对数据库所在服务器上的ssh连接,使用/etc/hosts.deny和/etc/hosts.allow

前面两个配合起来,基本上就能保证你的数据库安全了。但是如果你对linux的iptables很熟悉,那么直接使用iptables去限制。

使用/etc/hosts.deny和iptables时一定要保证自己的操作机能连到服务器,不然很容易就把自己锁死在外面了。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1397

    浏览量

    148262
  • 数据库
    +关注

    关注

    7

    文章

    3583

    浏览量

    63341
  • Oracle
    +关注

    关注

    2

    文章

    277

    浏览量

    34919
收藏 人收藏

    评论

    相关推荐

    labview访问数据库的若干种方法

    本帖最后由 eehome 于 2013-1-5 09:44 编辑 本文分析了labview中访问数据库的几种方法的优缺点,重点讨论了应用ADO技术,labsql,labview sql
    发表于 02-24 10:14

    labvies访问数据库

    通过以下几种方法来完成与数据库的接口。1.利用NI 公司的附加工具包LabVIEW SQL Toolkit 进行数据库访问。但是这种工具包比较昂贵,对于很多LabVIEW 用户来讲,这
    发表于 08-26 10:19

    IP屏蔽软件作用

    可以只限制某个地区和某个具体IP访问。目前互联先锋的IP数据
    发表于 11-05 13:58

    labview查看本机ip三种方法

    做TCP通讯的时候,有时候需要知道自己的IP虽然知道自己电脑ip可以不用这么麻烦,但是有时候就想用自己所学来获得自己所需,职业病 咳咳这里给出得到本地IP三种方法。源程序,在附件里。
    发表于 11-27 17:17

    labview如何远程访问oracle数据库

    本地访问oracle数据库已经做到了。由于不想通过labview之间的网络通信达到远程访问oracle,只想在局域网内直接去
    发表于 02-12 10:42

    labsql 访问局域网access数据库

    获得IP)。问题如下:服务器上有一个access数据库(a1.mdb),已经设置为共享。客户端有一个labview程序查询数据库的内容,使用了LABSQL。为了访问共享,已经在客户端操
    发表于 07-07 12:32

    labview 如何远程访问Oracle数据库

    ?它是服务器端的设置还是我电脑的设置?最后那个orcl是oracle里的一个实例,那是不是代表我要连接的数据库的名称?数据库所在的共享文件夹是不是必须填写?还望做过的朋友指导一下{:12:}
    发表于 07-15 16:24

    Labview三种方法读写SQL server数据库

    Server数据库LabVIEW通过LabSQL第数据库访问工具包,基于建立ODBC连接的方法访问
    发表于 07-28 22:06

    oracle数据库基础知识精讲视频分享

    day23_procedureday24_自制事务调用者权限、函数、确定性函数day25_package、triggerday26_体系结构组件概览day27_管理口令文件和参数文件day28_跟踪文件day29_数据库起动三阶段、停
    发表于 07-27 13:51

    数据库变快的10种方法

    摘要: 大多数网站的内容都存在数据库里,用户通过请求来访问内容。数据库非常的快,有许多技巧能让你优化数据库的速度,使你不浪费服务器的资源。在这篇文章中,我收录了十个优化
    发表于 12-27 17:06

    labview远程访问oracle数据库

    电脑系统:64位win7旗舰版;labview:32位2015版;oracle客户端:ODAC112040XCOPY_64BIT我使用这个程序访问数据库,现在数据链接测试成功,但是程序
    发表于 04-10 10:08

    Labview远程链接Oracle数据库

    。要是不懂select书库局这种语句的,可以参考这个网站的教程去写https://www.w3school.com.cn/sql/index.asp以上就是我实现远程连接oracle数据库方法,要是你
    发表于 05-20 11:01

    LwIP协议栈开发嵌入式网络的三种方法有何关系

    LwIP协议栈开发嵌入式网络的三种方法分析 轻量级的TCP/IP协议栈LwIP,提供了三种应用程序设计方法,且很容易被移植到多任务的操作系统中。本文结合μC/OS-II这一实时操作系统
    发表于 08-05 07:55

    C语言中使用嵌入式SQL访问Oracle数据库方法

    (Oracle Call Interface简称OCI),通过调用一系列OCI函数即可访问数据库。我在这里介绍的是前一种方法。另外,在本文中,我重点介绍的是利用C语言开发
    发表于 12-15 06:35

    关于PLC设备对接ORACLE数据库上传查询数据

    \'->\'数据上报与对接\'进入数据配置页面。在这个页面配置数据库服务器的IP地址、网络端口,以及数据库的名称、用户权限,上报
    发表于 10-12 15:34