当前位置:
文档之家› Oracle数据库安全加固文档
Oracle数据库安全加固文档
配置项名称
限制数据库超级管理员(SYSDBA)权限的用户远程登录
检查方法
用SQL>show parameter REMOTE_LOGIN_PASSWORDFILE
检查其值是否为NONE
操作步骤
1备份$ORACLE_HOME/dbs目录下的spfileSid.ora和initSid.ora
2用SQL>startup immediate关闭数据库
关闭Extproc功能
检查方法
查看$ORACLE_HOME/network/admin/listener.ora文件,是否存在extproc条目。?
操作步骤
1备份$ORACLE_HOME/network/admin/listener.ora文件
2关闭listener $ lsnrctl stop
3用vi把listener.ora中extproc条目删除
3修改initSid.ora令REMOTE_LOGIN_PASSWORDFILE =’NONE’
4 SQL>create spfile from pfile
5 SQL>startup启动数据库
回退操作
关闭数据库,恢复备份的文件到原来的位置,启动数据库。
风险
修改REMOTE_LOGIN_PASSWORDFILE需要先关闭数据库,手工进行参数修改,最后重新启动数据库。
2.5限制超级管理员才能访问数据字典基础表
配置项名称
限制超级管理员才能访问数据字典基础表
检查方法
可用SQL>show parameter O7_DICTIONARY_ACCESSIBILITY来查看该参数的值是否为FALSE。
操作步骤
1备份$ORACLE_HOME/dbs目录下的spfileSid.ora和initSid.ora
PASSWORD_GRACE_TIME 7
操作步骤
1执行SQL> select username ,profile from dba_users where account_status='OPEN';来查找出系统主要的活动应用帐号和profile名字。保存执行的结果。
2可以用下列语句进行proflie的创建:
2备份$ORACLE_HOME/dbs目录下的spfileSid.ora和initSid.ora
3执行$ lsnrctl stop关闭Listener
4用viቤተ መጻሕፍቲ ባይዱ改listener.ora中的端口号1521为其他端口
5用SQL>startup immediate关闭数据库
6修改initSid.ora添加一项LOCAL_LISTENER=listener1
2.3锁定与运行维护无关用户和用户默认密码的修改
配置项名称
锁定与运行维护无关用户和用户默认密码的修改
检查方法
l可以通过下面的语句查看系统中所有用户和用户状态:
SQL> select username , account_status from dba_users where account_status='OPEN';
配置项名称
设置LISTENER的启动关闭密码
检查方法
检查$ORACLE_HOME/network/admin/listener.ora文件中是否有PASSWORDS_LISTENER一项,若有说明密码已设定。
操作步骤
1备份$ORACLE_HOME/network/admin/listener.ora文件
SQL> CREATE PROFILE myprofile
LIMIT FAILED_LOGIN_ATTEMPTS 3 ---(单位次)
PASSWORD_LOCK_TIME 10/1440 ---(单位天,3次失败后锁定10分钟)
PASSWORD_GRACE_TIME 5 ---(单位天)
PASSWORD_LIFE_TIME 60 ---(单位天)
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME 180
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL
PASSWORD_LOCK_TIME 1
3用下面的命令把新创建的profile赋给制定的用户
SQL〉ALTER USER user1 PROFILE myprofile;
回退操作
把用户的profile重新设置为原来的profile。
风险
修改业务帐号的profile会影响到业务应用,需要所有相关访问数据库的应用的帐号密码定期根据profile做修改,可能会导致修改应用程序或应用帐号密码配置文件的定期修改。
10 SQL>startup启动数据库
回退操作
关闭Listener和数据库,恢复备份的文件到原来的目录,重启Listener和数据库。
风险
1.修改默认端口会影响到目前使用该数据库的应用,需要这些应用同步修改为新的端口
2.需要关闭重启数据库以及关闭重启Listener来完成端口的修改
2用户与权限
2.1设置LISTENER的启动关闭密码
7在tnsnames.ora中添加一项
listener1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1522))
)
)
8 SQL>create spfile from pfile
9 $ lsnrctl start
1端口设置
1.1避免使用默认的监听端口
配置项名称
避免使用默认的监听端口
检查方法
1检查$ORACLE_HOME/network/admin/listener.ora中是否有port=1521一项。
操作步骤
1备份$ORACLE_HOME/network/admin/目录下的tnsnames.ora, listener.ora文件
$sqlplus scott/tiger@mydb
$sqlplus dbsnmp/dbsnmp@mydb
操作步骤
1备份原来帐户的密码和状态
2更改用户帐号的默认口令:
sql> alter user user1 identified by强壮的口令;
对于暂时不用的用户建议锁定
sql>alter user user1 password Expire Account lock;
对于处于OPEN状态下的用户,和管理员确认该用户是否有用。
l通过sys,system,scott,dbsnmp用户以默认口令登录是否成功来验证口令是否做了修改。
$ sqlplus sys/.change_on_install@mydb as sysdba
$ sqlplus system/manager@mydb
PASSWORD_REUSE_TIME 365---(单位天)
PASSWORD_REUSE_MAX 4---(单位次)
PASSWORD_VERIFY_FUNCTION DEFAULT;
----(如果不使用校验函数,用DEFAULT,否则用sys用户下自己----建立的一个校验函数名)
----PASSWORD_VERIFY_FUNCTION自定义函数必须在ORACLE sys用户下建立,该函数必须含有三个varchar2类型的参数,分别是用户名,新密码,旧密码。
风险
修改参数O7_DICTIONARY_ACCESSIBILITY需要关闭重启数据库
2.6避免普通用户授予DBA角色
配置项名称
避免普通用户授予DBA角色
检查方法
可用SQL> select * from dba_role_privs where grantee in( select username from dba_users where account_status='OPEN' and username not in ('SYS','SYSTEM')) and granted_role='DBA' order by grantee;
来查找具有DBA权限的普通用户
操作步骤
1备份下列命令的查询结果
SQL> select * from dba_role_privs where grantee in( select username from dba_users where account_status='OPEN' and username not in ('SYS','SYSTEM')) and granted_role='DBA' order by grantee;
2用下列命令收回DBA角色
SQL〉revoke DBA from user1;
回退操作
恢复原来普通用户的DBA权限,执行命令SQL〉grant DBA to user1;
风险
要收回DBA角色需要确认业务应用确实不需要DBA角色,否则会影响到业务
3其他安全增强配置
3.1关闭Extproc功能
配置项名称
解除锁定用
sql>alter user user1 Account unlock;
删除用户用
sql>drop user user1 cascade;
回退操作
把帐户的密码和状态恢复到原来状态
风险
修改默认密码需要业务人员确认时候该用户是否在用,如果在用可能会影响到业务应用