CSDN博客

img winterld

Solaris下Oracle服务开机自启设置和一些安全策略

发表于2004/10/14 14:08:00  1296人阅读

分类: Database

SolarisOracle服务开机自启设置和一些安全策略

李守亮 2003-05-29

 

 

本文档适用于Solari5.85.9下的oracle 8i9i 环境,其他Unix可供参考。

 

目录:

一、Solaris下搭建oracle的一些安全策略

二、Solaris下Oracle开机自启设置步骤

 

 

内容:

一、Solaris下搭建oracle的一些安全策略

oracle用户、oinstall、dba组是安装oracle for unix时推荐创建的。由于这些用户和组名称是大家普遍知道的,所以很容易成为攻击的入口。同时因为oracle用户是程序和数据文件的owner,以owner身份登陆可以控制数据库及目录文件。对于广域网可以访问的服务器来说,存在的安全隐患就更大。因此,除了做好操作系统级的安全防护外,还要注意oracle自身的安全防范。

参阅文档《Oracle 8i、9i For Unix Version通用安装过程》,本文档在此基础上补充部分安全策略: 安装时创建不以oracle和oinstall、dba命名的用户和组;安装完毕禁用或锁定安装账号,创建专用管理员账号管理服务;审计oracle账号和程序安装账号。

 

具体步骤如下:

1、安装oracle时,用户和组分别由其他名称代替。

例如: 

用户    oracle——〉oraowner

        首要组  oinstall——〉oragroup

        次要组  dba ——〉oradba

 

2、安装完毕后禁用oracle安装账户oraowner ,使用admintool设置。

 

3、单独为oracle系统管理员创建管理账号,例如分别创建三个管理员dbauser1、dbauser2、dbauser3,分别属于主组oragroup,次要组oradba;

 

4、把oraowner用户.profile文件中的环境变量分别拷贝到dbauser1、dbauser2、dbauser3用户的.profile文件中,内容示例:

   ORACLE_BASE=/space/oracle; export ORACLE_BASE

   ORACLE_HOME=$ORACLE_BASE/OraHome1; export ORACLE_HOME

   NLS_LANG="simplified chinese_china.ZHS16GBK"; export NLS_LANG

   NLS_DATE_FORMAT="YYY-MM-DD HH24:MI:SS"; export NLS_DATE_FORMAT

   ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33

   ORACLE_SID=newsora9; export ORACLE_SID

   PATH=$PATH:$ORACLE_HOME/bin;export PATH

   CLASSPATH=$ORACLE_BASE/jre/1.1.8:$ORACLE_HOME/jlib;export CLASSPATH

 

5、检查$ORACLE_HOME下是否有可疑的组用户可写权限的文件和目录,如果有,删除可写权限;

 

6、监视/var/adm/sulog和loginlog,检查以oracle用户登陆的访问信息。

 

7、这样,就可以分别使用管理账号dbauser1、dbauser2、dbauser3通过dstart/dbshut、lsnrct start/stop命令停起服务,而不使用oracle账号了。

其中:

dstart/dbshut命令需要oracle 的次要组权限

lsnrctl命令需要oracle主要组权限

 

 

二、Oracle开机自启设置步骤

Solaris上安装完Oracle数据库后,可以把启动和关闭命令加到开关机的脚本中去。系统开关机不再手工起停服务。

 

安装完oracle后按照以下的步骤操作:

1、到目录/var/opt/oracle目录下,编辑oratab文件。文件的最后一行格式如下ORACLE_SID:ORACLE_HOME:(Y/N),示例:

    newsora9:/space/oracle/OraHome1:N,请把最后的N改为Y

 

2、验证$ORACLE_HOME /bin下的dbstart和dbshut两个脚本是否可以运行正常。如果不正常,检查$ORACLE_HOME/dbs/下是否有指向$ORACLE_BASE/admin/(dbname)/pfile/下的init(dbname).ora的链接,如果没有,则需要创建。假设数据库为oradb,

示例:

#su – oracle

#echo $ORACLE_BASE

/space/oracle/

#echo $ORACLE_HOME

/space/oracle/OraHome1

#ln –s /space/oracle/admin/oradb/pfile/initoradb.ora  /space/oracle/ OraHome1/dbs/ initoradb.ora

 

注意,一定不要使用相对路径,如ln –s ./initoradb.ora ../xxxxx

 

3、root用户来编辑启动脚本。

#su root

#cd /etc/init.d

#vi  oracle

在新建的oracle脚本中输入如下的内容:

#!/bin/sh

# Set ORA_HOME to be equivalent to the $ORACLE_HOME

# from which you wish to execute dbstart and dbshut;

# Set ORA_OWNER to the user id of the owner of the

# Oracle database in ORA_HOME.

ORACLE_HOME=$ORACLE_BASE/OraHome1

ORA_OWNER=oracle

if [! -f $ORA_HOME/bin/dbstart]

then

echo "Oracle startup: cannot start"

exit

fi

case "$1" in

'start')

# Start the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

su - $ORA_OWNER -c $ORACLE_HOME/bin/dbstart &

su - $ORA_OWNER -c "lsnrctl start &"

;;

'stop')

# Stop the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

su - $ORA_OWNER -c $ORACLE_HOME/bin/dbshut &

su - $ORA_OWNER -c "lsnrctl stop &"

;;

esac

 

注意:ORA_HOMEoraclehome路径,可以通过echo $ORACLE_HOME得到;根据前节所述,ORA_OWNER可以是专门的dba用户,如dbauser1"lsnrctl start &""lsnrctl stop &"不要使用绝对路径。

同样的方法,也可以在该脚本中增加weblogichttpdb2websphere等服务的起停语句。

 

4、把启动脚本和具体的启动和关闭脚本作连接。注意千万不要使用相对路径:

示例:

#ln –s /etc/init.d/oracle /etc/rc3.d/S99oracle

#ln –s /etc/init.d/oracle /etc/rcS.d/K99oracle

 

 

 

 

 

 

李守亮

slli@founder.com.cn

2003-05-29

阅读全文
0 0

相关文章推荐

img
取 消
img