Oracle安全配置

    1. 共享账号检查

安全配置编号

数据库-ORACLE-配置-1

配置名称

共享账户检查

配置要求内容

数据库应按照用户分配账号,避免不同用户间共享账号。共享账号带来管理和操作记录无法对应到各个用户使用者,以造成审计和记录不便,存在安全风险。

操作指南

  1. 参考配置操作

新建不同用户参考操作:

create user abc1 identified by password1;

create user abc2 identified by password2;

建立role,并给role授权,把role赋给不同的用户

  1. 补充操作说明

abc1abc2是两个不同的账号名称,可根据不同用户,取不同的名称;

检查方法

查看是否存在共享账户

风险提示

回退操作

备注

 

    1. 删除或锁定无关账号

安全配置编号

数据库-ORACLE-配置-2

配置名称

删除或锁定无关账户

配置要求内容

应删除或锁定与数据库运行、维护等工作无关的账号。工作无关的账号会成为安全风险,如若被不适当授权的权限,存在安全隐患。

操作指南

使用SQL> select username,account_status from dba_users;

检查方法

不存在多余未锁定账户为符合。

配置方法

  1. 参考配置操作

alter user username account lock;

drop user username cascade;

首先锁定不需要的用户

在经过一段时间后,确认该用户对业务确无影响的情况下,可以删除

  1. 补充操作说明

Oracle10g默认开启sys,system,dbsnmp,sysman,mgmt_view账户。

适用版本

oracle 9.x、oracle 10.x、oracle 11.x

风险提示

请根据业务需求和管理要求,确定无关账号,并进行锁定或者删除,避免删除一些有用账号。

回退操作

 

备注

 

    1. 登录失败锁定策略

安全配置编号

数据库-ORACLE-配置-4

配置名称

登录失败锁定策略

配置要求内容

Oracle的所有口令控制中,失败的登录尝试项是最重要的。应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。建议在设置锁定次数的同时设置一个口令锁定时间值,使得超过此值则自动解除账号锁定。

操作指南

检查用户profile文件;

测试过程中通过尝试多次错误登录,查看是否锁定。

检查方法

  1. LIMIT FAILED_LOGIN_ATTEMPTS 7(大于6为符合)
  2. 登录次数超过规定次数,锁定账户

满足以上两项为符合

配置方法

参考配置操作

设置失败的登录尝试次数,同时设置锁定时间。

为用户建profile,指定FAILED_LOGIN_ATTEMPTS为6,参考例子。

以oracle身份登录,执行以下操作

1.cd $ORACLE_HOME/ rdbms/admin

2.sqlplus "/ as sysdba"

SQL> @utlpwdmg.sql

SQL>ALTER PROFILE "DEFAULT"

LIMIT FAILED_LOGIN_ATTEMPTS 6 PASSWORD_LOCK_TIME 1 PASSWORD_VERIFY_FUNCTION DEFAULT;

  1. 补充操作说明

如果连续6次连接该用户不成功,用户将被锁定。

适用版本

oracle 9.x、oracle 10.x、oracle 11.x

风险提示

此操作最好配合口令锁定时间,以免误操作锁定了账号

回退操作

取消登录失败锁定策略:

1.cd $ORACLE_HOME/ rdbms/admin

2.sqlplus "/ as sysdba"

SQL> @utlpwdmg.sql

SQL>ALTER PROFILE "DEFAULT"

LIMIT FAILED_LOGIN_ATTEMPTS 6 unlimited;

备注

 

    1. 更改默认账号的密码

安全配置编号

数据库-ORACLE-配置-5

配置名称

更改默认账号的密码

配置要求内容

Oracle数据库中的默认大多数账户使用用户名来设置口令,更改数据库默认帐号的密码,不能以用户名作为密码或使用默认密码的账户登陆到数据库。

操作指南

  1. 以DBA用户登陆到sqlplus中;
  2. 检查数据库默认账户。

检查方法

未使用用户名作为密码或默认密码为符合。

配置方法

参考配置操作:

可通过下面命令来更改默认用户的密码:

ALTER USER XXX IDENTIFIED BY XXX;

下面是默认用户列表:

ANONYMOUS

CTXSYS

DBSNMP

DIP

DMSYS

EXFSYS

HR

LBACSYS

MDDATA

MDSYS

MGMT_VIEW

ODM

ODM_MTR

OE

OLAPSYS

ORDPLUGINS

ORDSYS

OUTLN

PM

QS

QS_ADM

QS_CB

QS_CBADM

QS_CS

QS_ES

QS_OS

QS_WS

RMAN

SCOTT

SH

SI_INFORMTN_SCHEMA

SYS

SYSMAN

SYSTEM

TSMSYS

WK_TEST

WKPROXY

WKSYS

WMSYS

XDB

适用版本

oracle 9.x、oracle 10.x、oracle 11.x

风险提示

更改数据库口令需要强烈注意,确认是否存在应用程序内置的数据库访问弱口令。

回退操作

  1. 更新应用程序内置的数据库访问口令;
  2. 或者修改数据库口令

备注

 

    1. 口令最长生存期要求

安全配置编号

数据库-ORACLE-配置-10

配置名称

口令生存期策略

配置要求内容

账户口令的生存期不长于90天。周期性地改变口令是一种很好的安全措施。这可以保持攻击者的猜测状态,或者可以从偷窃口令的人那里夺取访问权利

操作指南

查看用户profile文件PASSWORD_LIFE_TIME参数。

检查方法

存在alter profile DEFAULT limit PASSWORD_LIFE_TIME 90配置为符合。

注意:到期不修改密码,密码将会失效。连接数据库将不会成功。

配置方法

  1. 参考配置操作

为用户建相关profile,指定PASSWORD_LIFE_TIME为90天:

alter profile DEFAULT limit PASSWORD_LIFE_TIME 90

  1. 补充操作说明 建议额外执行如下口令安全策略

自定义口令复杂度要求函数PASSWORD_VERIFY_FUNCTION;

修改其中部分要求长度最短为8位

IF length(password) < 8 THEN

      raise_application_error(-20002, 'Password length less than 8');  

 END IF;

修改口令生命周期参数PASSWORD_LIFE_TIME=90;

修改最大登录失败次数参数FAILED_LOGIN_ATTEMPTS=10;

修改登录失败锁定时间参数PASSWORD_LOCK_TIME=1。

适用版本

oracle 9.x、oracle 10.x、oracle 11.x

风险提示

增加额外的管理成本,不及时修改密码会连接数据库不成功。

回退操作

alter profile DEFAULT limit PASSWORD_LIFE_TIME 90

可以整改90天为更长时间。

备注

数据库口令有效期更改可能给运维工作增加一定负担

    1. 启用密码管理策略

安全配置编号

数据库-ORACLE-配置-6

配置名称

启用密码管理策略

配置要求内容

Oracle10g通过用户资源文件对口令进行管理。可以CREATEPROFILE 语句创建用户资源文件,定义口令的生命期。还可以使用PL/SQL 脚本定义口令复杂性验证模型。

该配置项是前几个配置项的合并要求。

操作指南

查看用户profile文件。

检查方法

该配置包括以下输出项:

  1. 检查是否配置当用户连续认证失败次数超过规定次数时,锁定该用户使用的账号;
  2. 检查数据库用户密码有效时间;
  3. 检查数据库登录超过有效次数后的锁定时间是否不小于规定天数;
  4. 检查数据库口令被修改后原口令可以使用的间隔时间是否不长于规定天数;
  5. 检查是否配置用户不能重复使用规定次数内最近已使用的口令;
  6. 检查静态口令进行认证的数据库口令复杂度。

配置方法

参考配置操作:

缺省这个安全策略是没有启用的。

在用户profile文件中有以下参数是和密码安全有关系的:

FAILED_LOGIN_ATTEMPTS:最大错误登录次数

PASSWORD_GRACE_TIME:口令失效后锁定时间

PASSWORD_LIFE_TIME:口令有效时间

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

PASSWORD_REUSE_MAX:口令历史记录保留次数

PASSWORD_REUSE_TIME:口令历史记录保留时间

PASSWORD_VERIFY_FUNCTION:口令复杂度审计函数。

启用安全策略的示例,具体配置值根据实际需要确定。

以sys用户执行:SQL> @?/rdbms/admin/utlpwdmg.sql

设置举例:

CREATE PROFILE app_user2 LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LIFE_TIME 60

PASSWORD_REUSE_TIME 60

PASSWORD_REUSE_MAX UNLIMITED

PASSWORD_VERIFY_FUNCTION verify_function

PASSWORD_LOCK_TIME 1/24

PASSWORD_GRACE_TIME 10;

适用版本

oracle 9.x、oracle 10.x、oracle 11.x

风险提示

可能某个账号登录失败后,在锁定时间内无法再次登录。

回退操作

以sys用户执行:SQL> @?/rdbms/admin/utlpwdmg.sql

设置举例:

CREATE PROFILE app_user2 LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LIFE_TIME 60

PASSWORD_REUSE_TIME 60

PASSWORD_REUSE_MAX UNLIMITED

PASSWORD_VERIFY_FUNCTION verify_function

PASSWORD_LOCK_TIME 1/24

PASSWORD_GRACE_TIME 10;

根据自己的需求再相应的调整。

备注

具体策略按实际情况制定

    1. 断开超时的空闲远程连接

安全配置编号

数据库-ORACLE-配置-13

配置名称

空闲远程连接断开

配置要求内容

在某些应用环境下可设置数据库连接超时,比如数据库将自动断开超过10分钟的空闲远程连接。

自动断开超过10分钟的空闲远程连接,以防止在长时间远程连接过程中被其他人窃听到敏感信息的泄露。同时方式远程人员在离开时并未锁屏或则有效保护,他人借助此时时间空闲进行违规操作带来不必要的安全风险

操作指南

  1. 模拟10分钟以上对数据库无任何操作;
  2. 检查$ORACLE_HOME/network/admin/sqlnet.ora文件SQLNET.EXPIRE_TIME。参数

检查方法

  1. SQLNET.EXPIRE_TIME=10,10分钟(或小于10)无操作自动断开;
  2. 数据库将自动断开超过10分钟的空闲远程连接为符合。

配置方法

参考配置操作:

在sqlnet.ora中设置下面参数:

SQLNET.EXPIRE_TIME=10

适用版本

oracle 9.x、oracle 10.x

风险提示

如果应用有长连接的需求存在,该项有一定风险。

回退操作

根据应用需求设置时间量或者取消此项设置。

备注

 

    1. 数据字典保护

安全配置编号

数据库-ORACLE-配置-8

配置名称

数据字典保护

配置要求内容

启用数据字典保护,只有SYSDBA用户才能访问数据字典基础表。数据字典可能包含的信息,例如:数据库设计资料、储存的SQL程序、用户权限、用户统计、数据库的过程中的信息。

启用数据库字典保护达到保护数据库的目的,而普通dba登陆到数据库,不具备访问X$开头的表,以此来加强对数据库的保护

操作指南

1、以sqlplus‘/as sysdba’登陆到sqlplus环境中;

2、使用show parameter命令来检查参数Show parameter O7_DICTIONARY_ACCESSIBILITY。

检查方法

O7_DICTIONARY_ACCESSIBILITY = FALSE为符合。

配置方法

参考配置操作:

通过设置下面初始化参数来限制只有SYSDBA权限的用户才能访问数据字典。

O7_DICTIONARY_ACCESSIBILITY = FALSE

适用版本

oracle 9.x、oracle 10.x

风险提示

回退操作

备注

 

    1. 限制IP连接监听器

安全配置编号

数据库-ORACLE-配置-9

配置名称

限制IP连接监听器

配置要求内容

只允许应用IP访问数据库,实行访问控制

操作指南

在sqlnet.ora中增加

tcp.validnode_checking=yes

#允许访问的IP

tcp.invited_nodes=(ip1,ip2……)  

#禁止访问的IP 

tcp.excluded_nodes=(ip1,ip2……) 

配置使只允许对于应用IP访问本数据库

适用版本

所有

风险提示

会导致其他未授权服务器无法连接数据库

回退操作

取消限制

备注

 

 

    1. 监听端口修订

安全配置编号

数据库-ORACLE-配置-10

配置名称

监听端口修订

配置要求内容

Oracle默认端口为1521,较易被人猜解,从而实施攻击,需要修订端口号,使其不为1521

操作指南

修改listener.ora等配置文件将默认的监听端口1521修改成其他端口号,如9460

修改后重启监听服务

适用版本

所有

风险提示

可能导致部分数据库报错

回退操作

将需要修改的配置文件复制保存在备份目录:

cp $oracle_home/listener.ora /root/backup20160229/

需要回退的时候将修改前的备份文件覆盖回配置文件即可:

cp /root/backup20160229/listener.ora $oracle_home/listener.ora

备注

 

 

    1. 限制SYSDBA远程登录

安全配置编号

数据库-ORACLE-配置-7

配置名称

限制SYSDBA远程登录

配置要求内容

限制具备数据库超级管理员(SYSDBA)权限的用户远程登录。SYSDBA身份是数据库登录认证时的身份标识,并不是Oracle实例中存在的对象角色,这与DBA角色不同。

SYSDBA用户身份的用户通过sqlplus /as sysdba后拥有直接启动/关闭整个数据库系统的权限;如该身份用户具备直接远程登录权限,会给数据库安全带来巨大安全风险,为了规避此安全隐患,需要限制SYSDBA的远程登录。

操作指南

  1. 以sqlplus‘/as sysdba’登陆到sqlplus环境中;执行如下命令检查对应参数Show parameter REMOTE_LOGIN_PASSWORDFILE;

 

检查方法

  1. 从远程登陆。REMOTE_LOGIN_PASSWORDFILE=NONE禁止SYSDBA用户从远程登陆;

 

配置方法

  1. 参考配置操作

Oracle的数据库用SYSDBA身份用户登录方式有两种:一为数据库主机直接登录;二为网络远程登录。前者使用OS认证方式;后者使用密码文件认证方式。

具体配置包括:

在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆。

  1. 补充操作说明

完成如上操作后,效果如下:

不能通过Sql*Net远程以SYSDBA用户连接到数据库;

 

适用版本

oracle 9.x、oracle 10.x

风险提示

此配置影响远程以Sql*Net方式对数据库的管理;因此实际运维工作如需要远程SQLNET方式管理,该配置可不采用。此配置也可能使某些第三方ORACLE管理工具不正常。

回退操作

取消限制

备注

 

 

    1. 审计策略制定

安全配置编号

数据库-ORACLE-配置-11

配置名称

审计策略制定

配置要求内容

根据业务要求制定数据库审计策略。

通过对db_extended设置audit_trail参数,标准的Oracle审计将捕获精确的SQL执行文本,伴随着为任何绑定变量所使用来针对数据库查询的值

操作指南

1、检查查初始化参数audit_trail;

2、检查dba_audit_trail视图中或$ORACLE_BASE/admin/adump目录;

  1. 执行命令:select * from dba_audit_trail

检查方法

  1. audit_trail = db或os来打开数据库审计;
  2. dba_audit_trail视图中或$ORACLE_BASE/admin/adump目录中有数据;
  3. 执行select * from dba_audit_trail可以查看日志。

满足以上三项为符合。

配置方法

参考配置操作:

通过设置参数audit_trail = db或os来打开数据库审计,然后可使用Audit命令对相应的对象进行审计设置。

适用版本

oracle 9.x、oracle 10.x、oracle 11.x

风险提示

AUDIT会有相应资源开消,请检查系统资源是否充足。特别是RAC环境,资源消耗较大,需要注意对服务器性能的影响。

回退操作

审计级别调低或采用第三方审计

备注

 

 

    1. 版本升级

安全配置编号

数据库-ORACLE-配置-9

配置名称

版本升级

配置要求内容

进行版本更新,至ORACLE 11G以上

操作指南

从官网上下载相应版本补丁,进行更新。

建议现在测试环境中进行测试。 

检查方法

v$version

 

SQL> select * from v$version;  

适用版本

10G以下版本

风险提示

有可能导致兼容性问题

 

回退操作

重新部署数据库

 

备注

 

 

 

    1. LISTENER

安全配置编号

数据库-ORACLE-配置-9

配置名称

数据库监听器(LISTENER)的关闭和启动设置密码

配置要求内容

为数据库监听器(LISTENER)的关闭和启动设置密码。

Listener.ora这个配置文件可以识别监听器和正在监听的数据库。对监听器配置的更改可以通过对Listener.ora直接编辑或则通过使用ksnrctl运行命令来执行,

Listener.ora是一个需要保护的关键文件,尤其是写访问时。

操作指南

使用lsnrctl start或lsnrctl stop命令启停listener。 

检查方法

启停listener需要密码为符合。

配置方法

参考配置操作:

通过下面命令设置密码:

$ lsnrctl

LSNRCTL>change_password

Old password: <OldPassword> Not displayed

New password: <NewPassword> Not displayed

Reenter new password: <NewPassword> Not displayed

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)(IP=FIRST)))

Password changed for LISTENER

The command completed successfully

LSNRCTL>save_config

适用版本

oracle 9.x、oracle 10.x、oracle 11.x

风险提示

增加管理成本

 

回退操作

取消密码设置

 

备注

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lee_yanyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值