
系统运行安全一直是运维小伙伴关注的重点,
在陆续介绍了WEB层面与LINUX的安全配置后,
本期为大家提供ORACLE数据库安全策略作为运维参考。

1.可以通过设置ORACLE用户密码复杂度,提高访问系统验证的安全性。
2.可以通过开启或关闭密码有效期限制,提高密码管理的安全性。
3.可以通过设置ORACLE登录失败锁定策略与时长,降低恶意的密码猜测等攻击行为带来的风险。
4.可以通过对ORACLE用户访问IP进行限定,预防非授权的数据库访问。
5.可以通过开户审计功能记录数据库的操作,监控数据库访问和应对审计检查等工作。

1.一些策略启用后需要定期进行维护操作,需要结合公司运维策略判断是否可行。
2.启用密码复杂度、访问IP设置等,需充分梳理访问数据库的JBOSS、TASKSEVER、DBLINK连接、外围访问数据库等所有程序,评估是否可修改连接密码等信息,避免启用后无法访问影响正常业务。

1. ORCLE用户密码复杂度设置
作用:设置ORACLE用户密码设置复杂度,口令长度至少8位,包括数字、小写字母、大写字母三种类型的组合。
设置:
(1)查看参数:
select limit from dba_profiles where resource_name='PASSWORD_VERIFY_FUNCTION' and profile in (select profile from dba_users where account_status='OPEN');
--取值不是verify_function代表此参数还没修改
(2)修改resource_limit参数:alter system set resource_limit = true;
(3)生成口令复杂度函数:@$ORACLE_HOME/rdbms/admin/utlpwdmg.sql
(4)修改参数:alter profile default limit password_verify_function verify_function;
#取消Oracle密码复杂度检查:alter profile default limit password_verify_function null;
作用:设置密码有效期强制用户在指定天数内修改密码,否则进行警告后,锁定用户。
注:开启密码有效期,需要建立在相应间隔期限内关注修改密码的策略,否则会引起锁定后系统无法访问的风险,若无法做到则建议关闭。
设置:
(1)检查现有策略语句:Select * FROM dba_profiles s Where s.profile='DEFAULT' AND
resource_name='PASSWORD_LIFE_TIME';
--若结果为某个天数如180天,说明在180天内需要修改一次数据库用户密码,若为UNLIMITED则没有限制
(2)设置策略(以设置无限制为例):ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED
作用:设定用户登录时密码输错多少次后进行锁定,不能再登录,以及锁定多久后解锁。
设置:用DBA权限身份登录,执行以下操作
sqlplus "/ as sysdba"
SQL> @utlpwdmg.sql
SQL>ALTER PROFILE "DEFAULT" LIMIT FAILED_LOGIN_ATTEMPTS 6 PASSWORD_LOCK_TIME 1 PASSWORD_VERIFY_FUNCTION DEFAULT;
-- FAILED_LOGIN_ATTEMPTS 登录失败尝试次数
-- PASSWORD_LOCK_TIME 登录失败锁定天数
作用:设置可访问/不能访问连接数据库的机器IP。
设置:在服务器端的
$ORACLE_HOME/network/admin/sqlnet.ora中增加
tcp.validnode_checking=yes
#允许访问的IP
tcp.invited_nodes=(ip1,ip2……)
#禁止访问的IP
tcp.excluded_nodes=(ip1,ip2……)
作用:可以设置数据库操作是否记录,记录在数据库表中还是操作系统文件中。
注:开启审计后,需要配套定期截断清理的策略,否则在数据库中会造成SYSTEM表空间不断增长,无法自动扩展或撑爆了数据文件、磁盘限制;在操作系统中则造成LINUX结点数量超过限制;均容易引起数据库无法正常访问。
设置:
SQL> sqlplus as sysdba
SQL> alter system set audit_sys_operations=TRUE scope=spfile
SQL> alter system set audit_trail=db scope=spfile;
SQL> shutdown immediate
SQL> startup
--audit_trail参数值的简化说明
DB:默认值,表示启动审计,信息写入SYS.AUD$数据字典中
OS:表示启动审计功能,审计信息写入操作系统文件。
NONE:表示不启动审计功能。
关于安全策略的配置,后续还会不定期更新推出,新意将尽力为客户的系统安全保驾护航,有关配置使用的疑问可拔打新意客服热线‘0592-8015566’咨询。

