千家信息网

Oracle数据库怎么限制IP访问

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍了Oracle数据库怎么限制IP访问,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、概述本文将会给大家介绍在Orac
千家信息网最后更新 2025年11月10日Oracle数据库怎么限制IP访问

这篇文章主要介绍了Oracle数据库怎么限制IP访问,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、概述

本文将会给大家介绍在Oracle数据库该如何限制某个IP访问,或者限定某个IP段才能访问。

  1. 通过sqlnet.ora

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

  3. 通过iptables

二、正式实验

本次实验环境是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 = yestcp.invited_nodes = (192.168.31.71, 192.168.31.77)

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

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

lsnrctl stoplsnrctl 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,表示黑名单,这里不做介绍,有兴趣的可以自己去做做实验

(推荐教程:Oracle教程)

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

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

先删除前面实验添加的sqlnet.ora,然后重启监听

lsnrctl stoplsnrctl start

a. 修改/etc/hosts.deny

在文件尾部添加一行

all:all:deny

第一个all表示禁掉所有使用tcp_wrappers库的服务,举例来说就是sshtelnet等服务 第二个all表示所有网段

b. 修改/etc/hosts.allow

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

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

all:192.168.31.71:allowall:192.168.31.47:allow

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

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

[oracle@oracle19c1 ~]$ ssh 192.168.31.71ssh_exchange_identification: read: Connection reset by peer[oracle@oracle19c1 ~]$ telnet 192.168.31.71 22Trying 192.168.31.71...Connected to 192.168.31.71.Escape character is '^]'.Connection closed by foreign host.

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

[oracle@oracle19c1 ~]$ sqlplus sys/xxxxx@192.168.31.71:1521/orcltest as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Sun Aug 16 23:12:49 2020Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options

其中 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 的规则,编号数字可以通过上一个命令得到

感谢你能够认真阅读完这篇文章,希望小编分享的"Oracle数据库怎么限制IP访问"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

数据 数据库 限制 网段 服务 地址 文件 服务器 实验 篇文章 本机 名单 防火墙 监听 防火 一行 兴趣 同时 命令 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 国泰安数据库有EDI数据嘛 php连接数据库语法 软件开发在社会经济发展中的作用 广东数据软件开发服务价格优惠 杭州系统软件开发哪家可靠 软件开发 防渗透测试 加强网络安全的标题 山东浪潮服务器销售电话多少 金融行业中的软件开发 安盟网络技术有限公司 武汉0基础学安卓软件开发 分布式数据库安全审计 ice服务器被炸是什么样的后果 服务器如何接有线网络 FAT软件开发 数据库链接失效怎样填写 系统数据库未安装已被损坏 4am服务器上玩游戏 上海同邻互联网科技有限公司电话 我的世界把模组加入服务器教程 将服务器文件夹映射到本地盘 网络安全教育主题内容4条 泰拉瑞亚什么是服务器 我的系统服务器是干什么的 便携终端上的软件开发 服务器安全狗黑名单导入 软件开发专业基础知识 江西网络时钟服务器云主机 亚信服务器深度防护授权 入门网络安全的书
0