Oracle数据库系统安全配置手册.docx

上传人:b****2 文档编号:158463 上传时间:2023-04-28 格式:DOCX 页数:19 大小:23.28KB
下载 相关 举报
Oracle数据库系统安全配置手册.docx_第1页
第1页 / 共19页
Oracle数据库系统安全配置手册.docx_第2页
第2页 / 共19页
Oracle数据库系统安全配置手册.docx_第3页
第3页 / 共19页
Oracle数据库系统安全配置手册.docx_第4页
第4页 / 共19页
Oracle数据库系统安全配置手册.docx_第5页
第5页 / 共19页
Oracle数据库系统安全配置手册.docx_第6页
第6页 / 共19页
Oracle数据库系统安全配置手册.docx_第7页
第7页 / 共19页
Oracle数据库系统安全配置手册.docx_第8页
第8页 / 共19页
Oracle数据库系统安全配置手册.docx_第9页
第9页 / 共19页
Oracle数据库系统安全配置手册.docx_第10页
第10页 / 共19页
Oracle数据库系统安全配置手册.docx_第11页
第11页 / 共19页
Oracle数据库系统安全配置手册.docx_第12页
第12页 / 共19页
Oracle数据库系统安全配置手册.docx_第13页
第13页 / 共19页
Oracle数据库系统安全配置手册.docx_第14页
第14页 / 共19页
Oracle数据库系统安全配置手册.docx_第15页
第15页 / 共19页
Oracle数据库系统安全配置手册.docx_第16页
第16页 / 共19页
Oracle数据库系统安全配置手册.docx_第17页
第17页 / 共19页
Oracle数据库系统安全配置手册.docx_第18页
第18页 / 共19页
Oracle数据库系统安全配置手册.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Oracle数据库系统安全配置手册.docx

《Oracle数据库系统安全配置手册.docx》由会员分享,可在线阅读,更多相关《Oracle数据库系统安全配置手册.docx(19页珍藏版)》请在冰点文库上搜索。

Oracle数据库系统安全配置手册.docx

Oracle数据库系统安全配置手册

Oracle数据库系统安全配置

本标准适用于Unix/Linux操作系统下的Oracle数据库系统,版本为8i、9i、10g。

1将Oracle用户设置为DBA组的成员

查看dba组下的成员是否有Oracle用户:

cat/etc/group|grepdba

若Oracle用户不在dba组,则将其加入:

usermod-Gdba用户名

2最小权限使用规则

加固目的

1.应该只提供最小权限给用户(包括SYSTEM和OBJECT权限)

2.从PUBLIC组中撤回不必要的权限或角色。

(如:

UTL_SMTP、UTL_TCP、UTL_HTTP、UTL_、DBMS_SQL、DBMS_SYS_SQL、DBMS_BACKUP_RESTORE)

加固方法

撤销不需要的权限和角色,使用SQL语句

REVOKEEXECUTEONSYS.UTL_HTTPFROMPUBLIC;

REVOKEEXECUTEONSYS.UTL_PUBLIC;

REVOKEEXECUTEONSYS.UTL_SMTPFROMPUBLIC;

REVOKESELECTONALL_USERSFROMPUBLIC;

验证:

OEM管理器中,安全性->用户->PUBLIC->已授予的对象权限

colppformata35

SELECTs.privilege||'ON'||s.owner||'.'||NVL(l.longname,s.table_name)pp,s.grantableFROM

sys.dba_tab_privss,javasnmlWHEREs.table_name=l.short(+)ANDs.grantee='PUBLIC'

ands.privilege='EXECUTE'ands.table_namelike'UTL%';

3修改所有系统账户默认口令,锁定不需要的账户

加固目的

为了安全考虑,应用锁定Oracle当中不需要的用户;或改变缺省用户的密码。

加固方法

在sqlplus中查看所有账户及其状态:

selectusername,account_statusfromdba_users;

修改默认账户的口令:

ALTERUSERuser_nameIDENTIFIEDBYpassword;

锁定不需要的用户,使用SQL语句:

ALTERUSERuserPASSWORDEXPIRE;

注意锁定MGMT_VIEW、DBSNMP、SYSMAN帐号或修改密码。

(如果要使用DBConsole,MGMT_VIEW,DBSNMP、SYSMAN不能锁定,请修改密码)

DIP、EXFSYS、OUTLN、TSMSYS、WMSYS默认已锁定,请验证。

4删除多余自建账号

dropuseruser_namecascade;

5$ORACLE_HOME/bin目录权限保护

加固目的

确保对$ORACLE_HOME/bin目录的访问权限尽可能少

加固方法

运行命令:

chown-Roracle:

dba$ORACLE_HOME/bin(此命令在root用户下操作)

验证:

ls-l$ORACLE_HOME/bin确保该目录下的文件属主为oracle用户,且其他用户没有写权限。

6监听listener作ip访问限制

修改(需重启监听)

$ORACLE_HOME/network/admin/sqlnet.ora:

tcp.validnode_checking=yes

tcp.invited_nodes=(localhost,本机ip,应用服务器ip,管理机ip等)

重启监听:

lsnrctlstop;lsnrctlstart。

7关闭远程操作系统认证

加固目的

设置正确识别客户端用户,并限制操作系统用户数量(包括管理员权限、root权限、普通用户权限等)

加固方法

1.使用文本方式,打开数据库配置文件init.ora;设置参数REMOTE_OS_AUTHENT值为FALSE(SAP系统不可设置为False)

2.在数据库的账户管理中删除不必要的操作系统账号

设置(需重启数据库):

altersystemsetremote_os_authent=falsescope=spfile;

验证:

SQL>showparameterremote_os_authent

NAMETYPEVALUE

----------------------------------------------------------------------------

remote_os_authentbooleanFALSE

8修改默认的监听端口

修改(需重启监听)

$ORACLE_HOME/network/admin/listener.ora:

(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))

修改PORT的值为新的监听端口->

(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=3521))

确认:

lsnrctlstatus

9监听程序的管理

加固目的

通过设置listener.ora文件中的参数ADMIN_RESTRICTIONS_listener_name来防止远程对监听程序的非授权管理。

加固方法

在$ORACLE_HOME/network/admin/listener.ora文件中,设置ADMIN_RESTRICTIONS_(listener_name)=ON。

LISTENER加访问密码:

(only9i)

$ORACLE_HOME/network/admin/listener.ora

PASSWORDS_LISTENER=

10g:

(监听默认为本地操作系统帐号认证,即禁止远程管理)

验证:

Lsnrctlstatus,查看输出

SecurityON:

LocalOSAuthentication

10密码策略

加固目的

在Oracle,我们可以通过修改用户概要文件来设置密码的安全策略,可以自定义密码的复杂度。

在概要文件中有以下参数是和密码安全有关心的:

FAILED_LOGIN_ATTEMPTS:

最大错误登录次数

PASSWORD_GRACE_TIME:

口令失效后锁定时间

PASSWORD_LIFE_TIME:

口令有效时间

PASSWORD_LOCK_TIME:

登录超过有效次数锁定时间

PASSWORD_REUSE_MAX:

口令历史记录保留次数

PASSWORD_REUSE_TIME:

口令历史记录保留时间

PASSWORD_VERIFY_FUNCTION:

口令复杂度审计函数

加固方法

解释:

PASSWORD_LIFE_TIME:

口令有效时间

口令使用期限(按照国网要求,三个月修改一次密码,即90天)。

password_grace_time指的是在你的密码已经过期以后,第一次登录时间开始往后统计,使系统可以使用的日期限度.

PASSWORD_REUSE_TIME是重用密码的最小时间间隔,单位是天。

可以给出整数或分数,如1/1440表示1分钟(出于效率的考虑,oracle不会每分钟都去进行检查,一般来说,有5分钟左右的误差,因此如果这个数小于1/144则没有多大的意义)。

PASSWORD_REUSE_MAX是重用密码前更换密码的最小次数。

ALTERPROLIMITFAILED_LOGIN_ATTEMPTS60;(三级系统应设置在10次以内,二级系统在20次以内)

ALTERPROLIMITPASSWORD_LOCK_TIME0.5;

修改Oracle提供的验证函数文件$ORACLE_HOME/rdbms/admin/utlpwdmg.sql

其中IFlength(password)<4一行改为<8,并将最后一段修改为

ALTERPROLIMIT

PASSWORD_LIFE_TIME90

FAILED_LOGIN_ATTEMPTS20

PASSWORD_LOCK_TIME30/1440

PASSWORD_VERIFY_FUNCTIONverify_function;

在sqlplus中执行start$ORACLE_HOME/rdbms/admin/utlpwdmg.sql

设置后,密码复杂度必须包含字母、数字、标点(密码不区分大小写),最小长度为8。

最大错误登录次数为20次,账号锁定时间为30分钟

验证:

OEM-》安全性-》概要文件

select*fromdba_profiles;

创建验证函数:

(建议使用sys来创建该函数,否则可能出现问题)

CREATEORREPLACEFUNCTIONverify_function

(usernamevarchar2,

passwordvarchar2,

old_passwordvarchar2)

RETURNbooleanIS

nboolean;

minteger;

differinteger;

isdigitboolean;

ischarboolean;

ispunctboolean;

digitarrayvarchar2(20);

punctarrayvarchar2(25);

chararrayvarchar2(52);

BEGIN

digitarray:

='0123456789';

chararray:

='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

punctarray:

='!

"#$%&()``*+,-/:

;<=>?

_';

--Checkifthepasswordissameastheusername

IFNLS_LOWER(password)=NLS_LOWER(username)THEN

raise_application_error(-20001,'Passwordsameasorsimilartouser');

ENDIF;

--Checkfortheminimumlengthofthepassword

IFlength(password)<8THEN

raise_application_error(-20002,'Passwordlengthlessthan8');

ENDIF;

--Checkifthepasswordistoosimple.Adictionaryofwordsmaybe

--maintainedandacheckmaybemadesoasnottoallowthewords

--thataretoosimpleforthepassword.

IFNLS_LOWER(password)IN('welcome','database','account','user','password','oracle','computer','abcd')THEN

raise_application_error(-20002,'Passwordtoosimple');

ENDIF;

--Checkifthepasswordcontainsatleastoneletter,onedigitandone

--punctuationmark.

--1.Checkforthedigit

isdigit:

=FALSE;

m:

=length(password);

FORiIN1..10LOOP

FORjIN1..mLOOP

IFsubstr(password,j,1)=substr(digitarray,i,1)THEN

isdigit:

=TRUE;

GOTOfindchar;

ENDIF;

ENDLOOP;

ENDLOOP;

IFisdigit=FALSETHEN

raise_application_error(-20003,'Passwordshouldcontainatleastonedigit,onecharacterandonepunctuation');

ENDIF;

--2.Checkforthecharacter

<>

ischar:

=FALSE;

FORiIN1..length(chararray)LOOP

FORjIN1..mLOOP

IFsubstr(password,j,1)=substr(chararray,i,1)THEN

ischar:

=TRUE;

GOTOfindpunct;

ENDIF;

ENDLOOP;

ENDLOOP;

IFischar=FALSETHEN

raise_application_error(-20003,'Passwordshouldcontainatleastone\

digit,onecharacterandonepunctuation');

ENDIF;

--3.Checkforthepunctuation

<>

ispunct:

=FALSE;

FORiIN1..length(punctarray)LOOP

FORjIN1..mLOOP

IFsubstr(password,j,1)=substr(punctarray,i,1)THEN

ispunct:

=TRUE;

GOTOendsearch;

ENDIF;

ENDLOOP;

ENDLOOP;

IFispunct=FALSETHEN

raise_application_error(-20003,'Passwordshouldcontainatleastone\

digit,onecharacterandonepunctuation');

ENDIF;

<>

--Checkifthepassworddiffersfromthepreviouspasswordbyatleast

--3letters

IFold_passwordISNOTNULLTHEN

differ:

=length(old_password)-length(password);

IFabs(differ)<3THEN

IFlength(password)

m:

=length(password);

ELSE

m:

=length(old_password);

ENDIF;

differ:

=abs(differ);

FORiIN1..mLOOP

IFsubstr(password,i,1)!

=substr(old_password,i,1)THEN

differ:

=differ+1;

ENDIF;

ENDLOOP;

IFdiffer<3THEN

raise_application_error(-20004,'Passwordshoulddifferbyat\

least3characters');

ENDIF;

ENDIF;

ENDIF;

--Everythingisfine;returnTRUE;

RETURN(TRUE);

END;

/

11数据库操作审计

加固目的

ORACLE数据库具有对其内部所有发生的活动的审计能力,审计日志一般放在sys.aud$表中,也可以写入操作系统的审计跟踪文件中。

可审计的活动有三种类型:

登录尝试、数据库活动和对象存取,缺省情况下,数据库不启动审计,要求管理员配置数据库后才能启动审计。

加固方法

使用文本方式,打开数据库配置文件init.ora,更改以下参数配置AUDIT_TRAIL=True。

init.ora所在路径:

$ORACLE_HOME/database/(windows)

$ORACLE_HOME/dbs/(Unix\Linux)

接下来在sqlplus中执行以下两条命令:

altersystemsetaudit_trail='OS'scope=spfile;

altersystemsetAudit_sys_operations=truescope=spfile;

默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录

验证:

SQL>showparameteraudit

NAMETYPEVALUE

----------------------------------------------------------------------------

audit_sys_operationsbooleanTRUE

audit_trailstringOS

 

TRANSACTION_AUDITING:

thetransactionlayergeneratesaspecialredorecordwhichcontainssessionanduserinformation.Theserecordsmightbeusefulifusingaredologanalysistool.

AUDIT_指定了当审外部审记文件目标存储路径,其缺省值是$ORACLE_HOME/rdbms/audit

 

audit_string/opt/oracle/admin/cognos/adump

监听器日志错误登录

/opt/oracle/product/10.2.0/db_1/network/log/listener.log

12安全补丁的更新

加固目的

及时更新数据库的安全补丁,减少数据库系统可能受到的攻击。

加固方法

查看,下载并安装相关的安全补丁。

参考Oracle厂商建议,仅对已发现的特定漏洞或缺陷安装相应补丁。

13Oracle数据字典的保护

加固目的

设置保护后,可防止其他用户(具有‘ANY’systemprivileges)使用数据字典时,具有相同的‘ANY’权限。

加固方法

使用文本方式,打开数据库配置文件init.ora;更改以下参数O7_DICTIONARY_ACCESSIBILITY=。

1.Oracle9i、10g:

缺省值是False

2.Oracle8i:

缺省值是True,需要改成False

3.如果用户必须需要该权限,赋予其权限SELECTANYDICTIONARY

验证:

SQL>showparameterO7_DICTIONARY_ACCESSIBILITY

NAMETYPEVALUE

----------------------------------------------------------------------------

O7_DICTIONARY_ACCESSIBILITYbooleanFALSE

14关闭Extproc功能

加固目的

由于extproc存在安全问题允许用户不进行身份认证就可以调用系统函数,因此,如果不需要该功能必须关闭。

加固方法

修改TNSNAMES.ORA和LISTENER.ORA文件,删除以下条目:

●icache_extproc

●PLSExtproc

●Extproc

tnsnames.ora:

#EXTPROC_CONNECTION_DATA=

#(DESCRIPTION=

#(ADDRESS_LIST=

#(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))

#)

#(CONNECT_DATA=

#(SID=PLSExtProc)

#(PRESENTATION=RO)

#)

#)

listener.ora:

#(SID_DESC=

#(SID_NAME=PLSExtProc)

#(ORACLE_HOME=/opt/oracle/product/10.2.0/db_1)

#(PROGRAM=extproc)

#)

#(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))

15DBSNMP用户的保护

加固目的

Oracle数据库系统如果采用典型安装后,自动创建一个叫做DBSNMP的用户,该用户允许Oracle系统的智能代理(intelligentAgent),该用户的缺省密码也是“DBSNMP”。

如果忘记修改该用户的口令,任何人都可以通过该用户存取数据库系统。

其他有威胁的帐号还有:

CTXSYS,MDSYS,ORDPLUGINS,ORDSYS,OUTLN等。

加固方法

锁定该账号,或者更换密码

16SYS用户

加固目的

Oracle数据库系统安装后,自动创建一个叫做SYS的数据库管理员用户,当该用户sysdba方式连接数据库时,便具有全部系统权限,因而对它的保护尤为重要。

加固方法

更换SYS用户密码,符合密码复杂度要求;

新建一个DBA用户,作为日常管理使用。

17本地缓存区溢出防护

加固目的

'oracle'程序存在本地缓冲区溢出。

在传递命令行参数给'oracle'程序时缺少充分的边界缓冲区检查,可导致以'oracle'进程权限在系统上执行任意代码,需要进行有效加固。

加固方法

以系统管理员权限登录操作系统,进入Oracle安装目录

运行:

chmodo-xoracle加强对Oracle文件的可执行控制

验证非oracle帐号对该文件没有读取、运行权限:

ll$ORACLE_HOME/bin/oracle

-rwsr-s---1oracledba1107589762008-01-23/opt/oracle/product/10.2.0/db_1/bin/oracle

chmodo-x$ORACLE_HOME/bin/oracle

 

18日志目录

SQL>showparameterdump

NAMETYPE

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2