龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

11种Oracle监听器保护方法(1)(2)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
6.保护$TNS_ADMIN目录 $TNS_ADMIN目录即我们通常看到的ORACLE_HOME/network/admin目录,它下面包含有listener.ora,tnsnames.ora,sqlnet.ora,protocol.ora等重要配置文件,前面

6.保护$TNS_ADMIN目录

$TNS_ADMIN目录即我们通常看到的ORACLE_HOME/network/admin目录,它下面包含有listener.ora,tnsnames.ora,sqlnet.ora,protocol.ora等重要配置文件,前面已经提到,监听器的密码就是保存在listener.ora中的,如果不保护好,可能造成密码泄露,或整个文件被修改,这个目录下的listener.ora,sqlnet.ora,protocol.ora文件应该只开放给Oracle主账户(通常是oracle或Administrator),而其他账户不能有任何权限,tnsnames.ora文件在Linux或Unix系统上权限可以设置为0644,在windows上可以设置其他用户为浏览,读取权限。

7.保护TNSLSNR和LSNRCTL

在Linux或Unix服务器上,应该将这两个文件的权限设为0751,如果想更严格一点,可以设为0700,这样就只有安装oracle时指定的宿主用户可以执行它们了,这两个文件位于ORACLE_HOME/bin目录下。保护这两个文件的目的是为了防止黑客直接破坏它们,如果tnslsnr被破坏,监听器肯定不能启动,如果lsnrctl被破坏可能植入恶意代码,在运行lsnrctl时就会执行其它黑客行为。

8、移除不用的服务

默认安装时,会安装一个PL/SQL外部程序(ExtProc)条目在listener.ora中,它的名字通常是ExtProc或PLSExtProc,但一般不会使用它,可以直接从listener.ora中将这项移除,因为对ExtProc已经有多种攻击手段了。有时可能会在多个实例之间拷贝listener.ora,请检查拷贝来的文件中是否含有不需要的服务,确保只留下的确需要的服务项目,减少Oracle监听器受攻击的面。

9、改变默认的TNS端口号

改变Oracle监听器监听的端口号与修改ftp服务器默认的21端口,web服务器的80端口类似,因为Oracle默认的监听端口是1521(Oracle还正式注册了两个新的端口号2483和2484,说不定哪个新版本发布后,可能默认的端口号就会是这两个了,其中2484用于SSL类型的连接),几乎所有的扫描器都可以直接扫描这个端口是否打开,如果设置为一个不常用的端口号,可能会给人一种假象,而且即使扫描到端口打开,也还要猜测该端口运行是究竟是什么服务,攻击难度就加大了。

在修改端口的时候也不要设在1521-1550和1600-1699范围内,虽然通过修改默认端口并不算什么高级防护技术,但至少可以防止自动攻击,以及在端口1521上的简单扫描。可直接编辑listener.ora中端口号,也可以通过netca程序进行修改,当然在客户端也要做对应的修改才行。同时要设置初始化参数LOCAL_LISTENER,这样在监听端口发生变化后,数据库才会自动进行Oracle监听器重新注册。

10、设置节点验证

根据应用程序和网络配置情况,采用节点验证对于保护监听器是一种强有力的方法,大部分Web应用程序都只需要从应用服务器访问Oracle监听器,以及一台管理客户端,对于RHEL4 Oracle8/8i,在$ORACLE_HOME/network/admin/protocol.ora文件中添加节点检查语句,对于RHEL4Oracle9i/10g,在$ORACLE_HOME/network/admin/sqlnet.ora文件中添加节点检查语句,语句的格式都一样,如:
tcp.validnode_checking = yes
tcp.invited_nodes = ( x.x.x.x | name, x.x.x.x | name)
tcp.excluded_nodes=( x.x.x.x | name, x.x.x.x | name)

注意:这里要么使用invited_nodes语句,要么使用excluded_nodes,不能同时都使用,也不能使用通配符,子网等,只能使用明确的ip地址或主机名。这里的x.x.x.x指的就是如192.168.1.100这样的ip地址,name就是主机名,如果有多个ip地址或主机名,使用逗号进行分隔。

设置了节点验证后,Oracle监听器需要重新启动才会生效。使用这种方法进行节点验证会消耗一定的系统资源和网络带宽,如果要验证的地址过多,靠手工添加也很麻烦,这时可以使用RHEL4 OracleConnection Manager,如果是有许多客户端通过SQL*NET访问数据库,使用这种节点验证的方法也不可行,那会相当的慢。

11、RHEL4 Oracle监视日志

在前面的方法中开启了监听器日志功能,在产生了日志信息后,要对其进行分析,常见的可在日志文件中查找是否有TNS-01169,TNS-01189,TNS-01190或TNS-12508错误,如果有这些错误,至少可以说明要么有人攻击,要么有异常活动,进一步可以使用shell基本或一些简单的管理工具将这些有用的日志信息定期发送给DBA,实现实时监控效果。

  1. Oracle监听器配置的具体3步
  2. Oracle监听器出现的6种连接问题及其解决方法
  3. Oracle监听器安装和配置的具体方法浅析
  4. 探讨怎样回收Oracle监听器日志文件
  5. 浅析Oracle监听器安装与配置
精彩图集

赞助商链接