Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91354
  • 博文数量: 20
  • 博客积分: 1450
  • 博客等级: 上尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-14 10:43
文章存档

2010年(20)

我的朋友

分类: Oracle

2010-04-30 14:35:08

文件: 李守亮: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
阅读(832) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~