Oracle数据库限制指定IP可以访问

环境:

WindowServer2008R2、Oracle11g

问题描述:

放假刚回来就发现门户系统无法正常登录,看后台日志是连接数据库异常,登录数据库发现数据库用户A被锁定,立即登录管理员进行解锁,但是解锁后刚过几分钟会再次被锁。

问题分析:

Oracle账号锁定是因为Oracle安全会设置账号错误尝试次数(这里是10次)后自动锁定,避免账号密码被暴力破解。这里分析肯定是有人(程序)在不断使用错误密码登录该账号,导致账号锁定。

image

锁定时间上存在一定规律且按照以往经验(一般认为的输错几次锁定之后就不会一直规律性尝试)怀疑是有程序在不断的尝试连接,具体可能情况如下:

1、可能是遇到病毒或者入侵,有人尝试暴力破解该账号密码获取信息(因为内网的环境,还是比较安全可靠的,遭到入侵可能性不大);

2、某个应用或者数据库(常见的有dblink)等进行连接(可能性较大);

问题排查:

因此数据库较为简单,关系梳理后确定只有两个应用连接,且这两个应用检查过配置均正常(之前也正常运行,未做过配置更新),那到底还有谁在连接呢。

1、查看服务器的连接情况

在cmd中使用netstat -ano命令查看所有连接1521的连接情况,发现除了必要的两台服务器之外还有另外两台服务器连接,按照正常情况,其无需连接该库,而且找了相关服务器人员确认之前其表示均未连接此数据库。

问题处理:

为了简化操作,直接禁止除一直的两台服务器之外的连接,可以通过下面方式完成。

1、直接通过网络设备限制对该服务器的访问(采用方式);

2、通过防火墙设置访问策略,只允许指定服务器访问,设置方法如下:

登录服务器--》控制面板--》系统和安全--》Windows防火墙设置--》高级设置(或者在我的电脑上右键通过管理菜单进入)

注意:设置防火墙的时候不要禁用远程登录的端口或者IP,否则会导致无法远程登录!

image

通过新建规则--》自定义,在作用域中设置允许访问的IP列表,详细参考截图。

imageimage

imageimage

imageimage

3、通过Oracle设置(尚未测试)

编辑$ORACLE_HOME/network/admin/sqlnet.ora文件

image

tcp.validnode_checking=yes
tcp.invited_nodes=(XXXX)
tcp.excluded_nodes=(XXXX)

第一行是开启IP限制功能,第二行是允许访问数据库的IP地址列表,多个IP地址使用逗号分开;第三行为禁止访问数据库的IP地址列表,多个IP地址使用逗号分开

设置完成后重启监听程序生效。


posted on   jingkunliu  阅读(12)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示