在windows 2003 server上安装了Oracle 9.2.0.1.0,将其升级到9.2.0.8版本,并打上最新的安全补丁April 2008版。
一、升级oracle(administrator用户权限)
(1)到metalink下载升级压缩包,patch号为4547809,压缩包名称为 p4547809_92080_WINNT.zip,for windows 32bit。
(2)解压缩zip到根目录,下边包含一个Disk1和readme.html文件。安装升级补丁之前,在管理中停掉所有的oracle相关服务,在命令提示符中lsnrctl stop,停掉监听器。
(3)在双击Disk下的setup.exe前,确保环境变量中有ORACLE_HOME变量,并已正确设置。
在CMD窗口中查看:set ORACLE_HOME=d:\oracle\ora92
也可在运行setup.exe后查看已安装产品,如下图
(4)双击setup.exe,自动升级到9.2.0.8,命令提示符提示安装完成后,说明组件已经安装上。
(5)第4步并没有update组件,所以还需要update.此时需要开启Oracle的服务,最好是重起电脑,Oracle默认服务会自启动。
(6)以sysdba登录数据库,执行
C:\...>SQLPLUS /NOLOG
SQL> CONN SYSTEM/...@ORCL AS SYSDBA
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MIGRATE
SQL> @ORACLE_BASE\ORACLE_HOME\rdbms\admin\catpatch.sql
其中ORACLE_BASE\ORACLE_HOME表示你的oracle目录,假设oracle安装目录为d:\oracle\ora92,则第三句应为:
SQL>@d:\oracle\ora92\rdbms\admin\catpatch.sql 其中@表示执行以下脚本。
这个过程持续大概20分钟。
(7)完成后shutdown数据库,然后startup,执行另外一个脚本
SQL> @ORACLE_BASE\ORACLE_HOME\rdbms\admin\utlrp.sql,完成后升级补丁打完!!
(8)重起数据库,登陆后select * from v$version;可以看到oracle升到了9208。
二、oracle打安全补丁
(1)补丁信息:Critical Patch Update Note Release 9.2.0.8 for Microsoft Windows (32-Bit),patch号为6867138。
(2)CPU是过渡性补丁,需要用Oracle的安装工具opatch安装。
安装CPU之前,查看相应的opatch版本应为1.0.0.0.57,9.2.0.1版oracle自带版本为55的,到metalink下载57版本的,压缩包名为p2617419_10102_GENERIC。
(3)在用OPATCH安装安全补丁之前,重启服务器,进入安全模式进行。
(4) 解压p2617419_10102_GENERIC,解压缩后将OPATCH目录覆盖%oracle_home%\opatch
(5)在命令提示符中直接Opatch apply %补丁所在位置%,比如在电脑中补丁在 D:\6867138中,则命令提示符中输入 Opatch apply D:\6867138,自动安装安全补丁。
(6)跑remove_demo.js脚本来移除不稳定的Oracle HTTP Server demos.。
打开CMD窗口在提示符中cd到6867138目录
输入cscript //nologo remove_demo.js
(7)启动oracle服务,cd %ORACLE_HOME%\cpu\CPUApr2008 然后以sysdba登录后执行SQL>@catcpu.sql
以sysdba登陆执行SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= 'INVALID';检查,若有数据执行以下语句
cd %ORACLE_HOME%\rdbms\admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
(8)重新编译数据库中的视图
cd %ORACLE_HOME%\cpu\view_recompile然后sysdba登录,执行
SQL> @recompile_precheck_jan2008cpu.sql
这个是计算下需要执行的时间等。
shutdown数据库,以migrate方式startup,
SQL>startup migrate
然后SQL> @view_recompile_jan2008cpu.sql 关闭数据库。
重复第7步操作
三、Oracle安全设置
1、针对oracle9i用nessus扫描后出现443端口有高危风险的设置
描述
In a default installation of Oracle 9iAS v.1.0.2.2, it is possible to
deploy or undeploy SOAP services without the need of any kind of credentials.
This is due to SOAP being enabled by default after installation in order to
provide a convenient way to use SOAP samples. However, this feature poses a
threat to HTTP servers with public access since remote attackers can create
soap services and then invoke them remotely. Since SOAP services can
contain arbitrary Java code in Oracle 9iAS this means that an attacker
can execute arbitray code in the remote server.
解决方法
修改文件jserv.conf
$ORACLE_HOME/Apache/Jserv/etc/jserv.conf
在版本为9.2.0.8.0中为$ORACLE_HOME/Apache/Jserv/conf/jserv.conf
找到以下四行并将其注释掉
ApJServGroup group2 1 1 $ORACLE_HOME/Apache/Jserv/etc/jservSoap.properties
ApJServMount /soap/servlet ajpv12://localhost:8200/soap
ApJServMount /dms2 ajpv12://localhost:8200/soap
ApJServGroupMount /soap/servlet balance://group2/soap
需重启服务生效
2、针对oracle9i用nessus扫描后出现7778端口有高危风险的设置
描述:
Oracle 9i Application Server uses Apache as its web
server with an Apache module for PL/SQL support.
By default, no authentication is required to access the
DAD configuration page. An attacker may use this flaw
to modify PL/SQL applications or prevent the remote host
from working properly.
解决方法
修改 apache httpd.conf 文件,加入以下代码:
Order deny,allow
Deny from all
Order allow,deny
Deny from all
Order deny,allow
Deny from all
重启apache服务生效
3、有关监听密码为空的安全设置请参考
远程数据库服务是没有密码保护。
描述
远程Oracle侦听器程序(tnslsnr)没有密码分配。攻击者可以利用这个事实,武断地将其关闭,从而防止合法用户使用它。
解决方法
使用lsnrctrl CHANGE_PASSWORD命令分配一个密码。具体操作如下:
打开CMD窗口,输入lsnrctl回车,按照以下步骤执行即可解决;
LSNRCTL> change_password
Old password:
New password:
Reenter new password:
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
LISTENER的口令已更改
命令执行成功
LSNRCTL> set password
Password:
命令执行成功
LSNRCTL> save_config
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
保存的LISTENER配置参数。
监听器参数文件 d:\oracle\ora92\network\admin\listener.ora
旧的参数文件d:\oracle\ora92\network\admin\listener.bak
命令执行成功