|
文件: |
李守亮:Solaris下Oracle服务开机自启设置和一些安全策略.rar |
大小: |
9KB |
下载: |
下载 | |
Solaris下Oracle服务开机自启设置和一些安全策略
李守亮 2003-05-29
本文档适用于Solari5.8、5.9下的oracle 8i、9i 环境,其他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_HOME指oracle的home路径,可以通过echo $ORACLE_HOME得到;根据前节所述,ORA_OWNER可以是专门的dba用户,如dbauser1;"lsnrctl start &"和"lsnrctl stop &"不要使用绝对路径。
同样的方法,也可以在该脚本中增加weblogic、http、db2、websphere等服务的起停语句。
4、把启动脚本和具体的启动和关闭脚本作连接。注意千万不要使用相对路径:
示例:
#ln –s /etc/init.d/oracle /etc/rc3.d/S99oracle
#ln –s /etc/init.d/oracle /etc/rcS.d/K99oracle
李守亮
2003-05-29
阅读(861) | 评论(0) | 转发(0) |