Oracle数据库限制指定IP可以访问
环境:
WindowServer2008R2、Oracle11g
问题描述:
放假刚回来就发现门户系统无法正常登录,看后台日志是连接数据库异常,登录数据库发现数据库用户A被锁定,立即登录管理员进行解锁,但是解锁后刚过几分钟会再次被锁。
问题分析:
Oracle账号锁定是因为Oracle安全会设置账号错误尝试次数(这里是10次)后自动锁定,避免账号密码被暴力破解。这里分析肯定是有人(程序)在不断使用错误密码登录该账号,导致账号锁定。
锁定时间上存在一定规律且按照以往经验(一般认为的输错几次锁定之后就不会一直规律性尝试)怀疑是有程序在不断的尝试连接,具体可能情况如下:
1、可能是遇到病毒或者入侵,有人尝试暴力破解该账号密码获取信息(因为内网的环境,还是比较安全可靠的,遭到入侵可能性不大);
2、某个应用或者数据库(常见的有dblink)等进行连接(可能性较大);
问题排查:
因此数据库较为简单,关系梳理后确定只有两个应用连接,且这两个应用检查过配置均正常(之前也正常运行,未做过配置更新),那到底还有谁在连接呢。
1、查看服务器的连接情况
在cmd中使用netstat -ano命令查看所有连接1521的连接情况,发现除了必要的两台服务器之外还有另外两台服务器连接,按照正常情况,其无需连接该库,而且找了相关服务器人员确认之前其表示均未连接此数据库。
问题处理:
为了简化操作,直接禁止除一直的两台服务器之外的连接,可以通过下面方式完成。
1、直接通过网络设备限制对该服务器的访问(采用方式);
2、通过防火墙设置访问策略,只允许指定服务器访问,设置方法如下:
登录服务器--》控制面板--》系统和安全--》Windows防火墙设置--》高级设置(或者在我的电脑上右键通过管理菜单进入)
注意:设置防火墙的时候不要禁用远程登录的端口或者IP,否则会导致无法远程登录!
通过新建规则--》自定义,在作用域中设置允许访问的IP列表,详细参考截图。
3、通过Oracle设置(尚未测试)
编辑$ORACLE_HOME/network/admin/sqlnet.ora文件
tcp.validnode_checking=yes
tcp.invited_nodes=(XXXX)
tcp.excluded_nodes=(XXXX)
第一行是开启IP限制功能,第二行是允许访问数据库的IP地址列表,多个IP地址使用逗号分开;第三行为禁止访问数据库的IP地址列表,多个IP地址使用逗号分开
设置完成后重启监听程序生效。
posted on 2025-02-08 14:06 jingkunliu 阅读(12) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)