Oracle数据库系统安全配置手册0603Word文档下载推荐.docx

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

Oracle数据库系统安全配置手册0603Word文档下载推荐.docx

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

Oracle数据库系统安全配置手册0603Word文档下载推荐.docx

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<

sid>

.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:

口令复杂度审计函数

解释:

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

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

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

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

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

ALTERPROFILEdefaultLIMITFAILED_LOGIN_ATTEMPTS60;

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

ALTERPROFILEdefaultLIMITPASSWORD_LOCK_TIME0.5;

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

其中IFlength(password)<

4一行改为<

8,并将最后一段修改为

ALTERPROFILEDEFAULTLIMIT

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'

--Checkifthepasswordistoosimple.Adictionaryofwordsmaybe

--maintainedandacheckmaybemadesoasnottoallowthewords

--thataretoosimpleforthepassword.

IFNLS_LOWER(password)IN('

welcome'

'

database'

account'

user'

password'

oracle'

computer'

abcd'

)THEN

Passwordtoosimple'

--Checkifthepasswordcontainsatleastoneletter,onedigitandone

--punctuationmark.

--1.Checkforthedigit

isdigit:

=FALSE;

m:

=length(password);

FORiIN1..10LOOP

FORjIN1..mLOOP

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

=TRUE;

GOTOfindchar;

ENDLOOP;

IFisdigit=FALSETHEN

raise_application_error(-20003,'

Passwordshouldcontainatleastonedigit,onecharacterandonepunctuation'

--2.Checkforthecharacter

<

findchar>

>

ischar:

FORiIN1..length(chararray)LOOP

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

GOTOfindpunct;

IFischar=FALSETHEN

Passwordshouldcontainatleastone\

digit,onecharacterandonepunctuation'

--3.Checkforthepunctuation

findpunct>

ispunct:

FORiIN1..length(punctarray)LOOP

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

GOTOendsearch;

IFispunct=FALSETHEN

endsearch>

--Checkifthepassworddiffersfromthepreviouspasswordbyatleast

--3letters

IFold_passwordISNOTNULLTHEN

differ:

=length(old_password)-length(password);

IFabs(differ)<

3THEN

length(old_password)THEN

ELSE

=length(old_password);

=abs(differ);

FORiIN1..mLOOP

IFsubstr(password,i,1)!

=substr(old_password,i,1)THEN

=differ+1;

IFdiffer<

raise_application_error(-20004,'

Passwordshoulddifferbyat\

least3characters'

--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身份登录的用户)的操作都会被记录

showparameteraudit

audit_sys_operationsbooleanTRUE

audit_trailstringOS

 

TRANSACTION_AUDITING:

thetransactionlayergeneratesaspecialredorecordwhichcontainssessionanduserinformation.Theserecordsmightbeusefulifusingaredologanalysistool.

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

audit_file_deststring/opt/oracle/admin/cognos/adump

监听器日志错误登录

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

12安全补丁的更新

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

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

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

13Oracle数据字典的保护

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

更改以下参数O7_DICTIONARY_ACCESSIBILITY=。

1.Oracle9i、10g:

缺省值是False

2.Oracle8i:

缺省值是True,需要改成False

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

showparameterO7_DICTIONARY_ACCESSIBILITY

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)

15DBSNMP用户的保护

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

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

其他有威胁的帐号还有:

CTXSYS,MDSYS,ORDPLUGINS,ORDSYS,OUTLN等。

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

16SYS用户

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

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

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

17本地缓存区溢出防护

'

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

在传递命令行参数给'

程序时缺少充分的边界缓冲区检查,可导致以'

进程权限在系统上执行任意代码,需要进行有效加固。

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

运行:

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

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

当前位置:首页 > 解决方案 > 学习计划

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

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