Oracle数据库安全加固记录(一)

2015-02-02 23:06:03 · 作者: · 浏览: 21

一个应用系统做等保,需要对数据库进行安全加固,根据流程需要先在测试环境进行测试通过后应用于生产环境,这里简单记录测试过程,审计内容是评测的重要点,但是生产环境也不便于开启,这里先简单记录之,后面再进行相关内容补充。

1. 删除无用多余的帐号

1)查看帐号及状态

SQL> select username,account_status from dba_users;

USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SYSMAN OPEN
ABC OPEN
B OPEN
KOU OPEN
OUTLN EXPIRED & LOCKED
FLOWS_FILES EXPIRED & LOCKED
MDSYS EXPIRED & LOCKED
ORDSYS EXPIRED & LOCKED
SQL>

说明: 如果不使用EM,可以停用MGMT_VIEW,DBSNMP,SYSMAN帐号.

2)删除多余帐号,对于一些测试帐号可以删除掉。

SQL> drop user kou cascade;
User dropped.
SQL>

?

2. 锁定多余用户,对于不明用途的帐号可以采用先锁定一段时间,再删除。

(1) 锁定多余用户

SQL> alter user abc account lock;
User altered.

(2) 解锁用户

SQL> alter user abc account unlock;
User altered.

SQL> select username,account_status from dba_users;

USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SYSMAN OPEN
B OPEN
ABC LOCKED
OUTLN EXPIRED & LOCKED
FLOWS_FILES EXPIRED & LOCKED

其它状态参数说明:
OPEN: 正常的帐户
LOCKED: 表示这个帐户被锁定;
EXPIRED: 表示该帐户口令到期,要求用户在下次logon的时候修改口令(系统会在该account被设置为expire后的第一次登陆是提示你修改密码)
EXPIRED(GRACE): 当设置了grace以后(第一次成功登录后到口令到期后有多少天时间可改变口令,在这段时间内,帐户被提醒修改口令并可以正常登陆,account_status显示为EXPIRED(GRACE).
LOCKED(TIMED): 这种状态表示失败的login次数超过了FAILED_LOGIN_ATTEMPTS,被系统自动锁定,需要注意的是,在Oracle 10g中,默认的DEFAULT值是10次.
EXPIRED & LOCKED:表示此账户被设置为口令到期且被锁定。
EXPIRED(GRACE) & LOCKED(TIMED): 当account_stutus为EXPIRED(GRACE)的时候,用户又尝试失败的login次数超过了FAILED_LOGIN_ATTEMPTS,被系统自动锁定
EXPIRED & LOCKED(TIMED): 当设置了account expire后,用户又失败的login次数超过了FAILED_LOGIN_ATTEMPTS,被系统自动锁定
EXPIRED(GRACE) & LOCKED: 用户account_status为EXPIRED(GRACE)后,又被DBA 手工锁定帐户后的状态

?

3. 限制超级管理员远程登录

1)默认状态下系统管理员是可以远程登录的,采用如下方式验证。

C:\>sqlplus sys/oracle@orcl181 as sysdba;

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 12月 8 14:51:18 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

2)限制超级用户远程登录

说明: 远程登录访问不登录密码文件进行验证。

SQL> alter system set remote_login_passwordfile=none scope=spfile;

SQL> shutdown immediate;
SQL> startup;

3)限制用户使用本地操作系统认证登录

有些安全配置要求,限制本地操作系统认证登录,配置如下。

$ vi /u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=none

4)测试方式

sqlplus system/oracle@orcl as sysdba
sqlplus / as sysdba

说明: 以上两条如果都启的话,SYSDBA用户将无法登录,数据库也无法启动,如果要进行管理操作,需要变通操作。

?

4. 根据帐号分配最小权限

Oracle提供三种标准的角色: connect,resource和DBA,限制DBA权限的用户使用.

1)帐号拥有的系统权限

SQL> select * from dba_sys_privs where grantee='ABC';

GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
ABC UNLIMITED TABLESPACE NO

2)帐号拥有的角色

SQL> select * from dba_role_privs where grantee='ABC';

GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
ABC CONNECT NO YES
ABC RESOURCE NO YES
SQL>

3)帐号拥有的对象权限

SQL> select * from dba_tab_privs where grantee='ABC';
no rows selected

4)参考配置操作, 对于DBA权限,需要判断是否需要DBA权限,否则都应取消dba权限,降为普通权,需要应用方DBA进行调整。

?

5. 帐号密码策略配置

1)Oracle 10g密码策略配置初始配置

说明:通常对管理帐号与维护帐号时行密码策略,业务帐号不做策略限制,例如应用帐号过期,会影响业务的正常使用等情况,默认使用DEFA