本文总结了11种对RHEL4 Oracle进行保护的方法,使用这些方法后,想要通过进行破坏活动基本上就很困难了,除非犯了一些低级错误,如不小心将密码泄露给他人,或将配置信息暴露在Internet上。以上详细的介绍了保护RHEL4 Oracle的11种方法希望可以帮助到大家抵御黑客。
AD:RHEL4 Oracle会有很多地方可供黑客利用,所以针对RHEL4 Oracle的保护措施就会有很多,下面我们就来一一介绍这11种保护RHEL4 Oracle的方法。
1。RHEL4 Oracle设置密码
通过设置密码可以阻止大部分的菜鸟黑客的进攻,设置密码有两种方法,一种是通过lsnrctl命令来设置,另一种是直接修改a文件,第一种方法设置的密码是经过加密后存储在a中,而第二种方法是以明文的形式放在a中的,所以推荐使用第一种方式。具体命令如下:
LSNRCTL> set current_listener <;名>
LSNRCTL> change_password
old password: <;如果之前没有设置密码就直接按回车>
New password: <;输入新密码>
Reenter new password: <;再次输入新密码>
LSNRCTL> set password Password: <;输入刚刚设置的新密码>
LSNRCTL> save_config
设置好密码后,打开a,看是否有一条PASSWORDS_<;名>的记录,类似于PASSWORDS_LISTENER = F4BAA4A006C26134.为设置了密码后,必须到客户端重新配置连接。
2.RHEL4 Oracle开启日志
开启日志功能是为了捕获命令和防止密码被暴力破解。开启日志功能的命令为:
LSNRCTL> set current_listener <;名>
LSNRCTL> set password Password: <;输入密码>
LSNRCTL> set log_directory /network/admin
LSNRCTL> set log_file .log
LSNRCTL> set log_status on
菜鸟oracleLSNRCTL> save_config
通过运行上面的命令,将会在/network/admin目录下创建一个.log日志文件,以后可以打开该文件查看一些常见的ORA-错误信息。
3.RHEL4 Oracle在a中设置ADMIN_RESTRICTIONS
在a文件中设置了ADMIN_RESTRICTIONS参数后,当在运行时,不允许执行任何管理任何,届时,set命令将不可用,不论是在服务器本地还是从远程执行都不行,这时如果要修改设置就只有手工修改a文件了,通过手工修改a,要使修改生效,只能使用lsnrctl reload命令或lsnrctl stop/start命令重新载入一次配置信息。在a文件中手动加入下面这样一行:ADMIN_RESTRICTIONS_<;名> = ON
4.RHEL4 Oracle打上最新的补丁
这一点就与操作系统类似,数据库也有bug,也有漏洞,黑客会在漏洞发现第一时间扫描未打补丁的服务器,所以作为一个称职的DBA要随时关注Oracle的CPU(呵呵,不是处理器,是关键补丁升级的意思),这里要说明的是Oracle的补丁是自动累加的,就像windows xp sp2的内容包括了sp1的所
有内容一样,所以只需要按照最新的补丁集就可
以了,还有一点要注意的是在生产系统上应用任何补丁前都需要先在测试环境进行测试,保证升级后不影响正常业务才进行升级。最后要说明的是,只有购买了Oracle的正式许可才可以登陆下载补丁,否则就只有从第三方地址下载,其完整性就不能保证了。
5.RHEL4 Oracle利用防火墙阻止SQL*NET
除非的确需要,否则不应该让SQL*NET通讯通过防火墙,在设计防火墙规则时,应设计为只允许经过认证的Web服务器和应用程序通过防火墙进行SQL*NET通信。而且放在防火墙DMZ区域的应用服务器使用SQL*NET通信时,应只允许它与特定的数据库服务器进行通信。
通常很少有应用会从Internet直接访问数据库,因为这种方式的延迟非常明显,通用的做法是配置应用服务器与数据库通信,Internet客户端通过浏览器访问应用服务器即可,这时配置防火墙时也只需设置应用服务器和数据库服务器之间的通信规则即可。
6.保护$TNS_ADMIN目录
$TNS_ADMIN目录即我们通常看到的ORACLE_HOME/network/admin目录,它下面包含有a,a,a,a等重要配置文件,前面已经提到,的密码
就是保存在a中的,如果不保护好,可能造成密码泄露,或整个文件被修改,这个目录下的a,a,a文件应该只开放给Oracle主账户(通常是oracle或Administrator),而其他账户不能有任何权限,a文件在Linux或Unix系统上权限可以设置为0644,在windows上可以设置其他用户为浏览,读取权限。
7.保护TNSLSNR和LSNRCTL
在Linux或Unix服务器上,应该将这两个文件的权限设为0751,如果想更严格一点,可以设为0700,这样就只有安装oracle时指定的宿主用户可以执行它们了,这两个文件位
于ORACLE_HOME/bin目录下。保护这两个文件的目的是为了防止黑客直接破坏它们,如果tnslsnr被破坏,肯定不能启动,如果lsnrctl被破坏可能植入恶意代码,在运行lsnrctl时就会执行其它黑客行为。
8、移除不用的服务
默认安装时,会安装一个PL/SQL外部程序(ExtProc)条目在a中,它的名字通常是ExtProc或PLSExtProc,但一般不会使用它,可以直接从a中将这项移除,因为对ExtProc已经有多种攻击手段了。有时可能会在多个实例之间拷贝a,请检查拷贝来的文件中是否含有不需要的服务,确保只留下的确需要的服务项目,减少Oracle受攻击的面。
9、改变默认的TNS端口号
改变Oracle监听的端口号与修改ftp服务器默认的21端口,web服务器的80端口类似,因为Oracle默认的监听端口是1521(Oracle还正式注册了两个新的端口号2483和2484,说不定哪个新版本发布后,可能默认的端口号就会是这两个了,其中2484用于SSL 类型的连接),几乎所有的扫描器都可以直接扫描这个端口是否打开,如果设置为一个不常用的端口号,可能会给人一种假象,而且即使扫描到端口打开,也还要猜测该端口运行是究竟是什么服务,攻击难度就加大了。
在修改端口的时候也不要设在1521-1550和1600-1699范围内,虽然通过修改默认端口并不算什么高级防护技术,但至少可以防止自动攻击,以及在端口1521上的简单扫描。可直接编辑a中端口号,也可以通过netca程序进行修改,当然在客户端也要做对应的修改才行。同时要设置初始化参数LOCAL_LISTENER,这样在监听端口发生变化后,数据库才会自动进行Oracle重新注册。
10、设置节点验证
根据应用程序和网络配置情况,采用节点验证对于保护是一种强有力的方法,大部分Web应用程序都只需要从应用服务器访问Oracle,以及一台管理客户端,对于RHEL4 Oracle8/8i,在$ORACLE_HOME/network/a文件中添加节点检查语句,对于RHEL4Oracle9i/10g,在$ORACLE_HOME/network/a 文件中添加节点检查语句,语句的格式都一样,如:
tcp.validnode_checking = yes
tcp.invited_nodes = ( | name, | name)
注意:这里要么使用invited_nodes语句,要么使用excluded_nodes,不能同时都使用,也不能使用通配符,子网等,只能使用明确的ip地址或主机名。这里的指的就是如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,实现实时监控效果。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。