2022年Oracle数据库系统安全配置手册.docx
《2022年Oracle数据库系统安全配置手册.docx》由会员分享,可在线阅读,更多相关《2022年Oracle数据库系统安全配置手册.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、附件四: Oracle 数据库系统安全配置本标准适用于 Unix/Linux操作系统下的Oracle 数据库系统,版本为8i、9i、10g.1 安全补丁的更新加固目的准时更新数据库的安全补丁,削减数据库系统可能受到的攻击.加固方法查看,下载并安装相关的安全补丁.参考 Oracle 厂商建议,仅对已发觉的特定漏洞或缺陷安装相应补丁.2 $ORACLE_HOME/bin目录权限爱护加固目的确保对 $ORACLE_HOME/bin目录的拜访权限尽可能少加固方法运行命令:chown R oracle:dba $ORACLE_HOME/bin验证: ls l $ORACLE_HOME/bin确保该目录下
2、的文件属主为oracle 用户, 且其他用户没有写权限.3 Oracle 数据字典的爱护加固目的设置爱护后,可防止其他用户(具有ANY system privileges)使用数据字典时,具有相同的 ANY权限 .加固方法使 用 文 本 方 式 , 打 开 数 据 库 配 置 文 件 init.ora ; 更 改 以 下 参 数O7_DICTIONARY_ACCESSIBILITY.1. Oracle 9i 、10g:缺省值是 False2. Oracle 8i :缺省值是 True,需要改成 False 3假如用户必需需要该权限,给予其权限SELECT ANY DICTIONARY 验证:
3、SQL show parameter O7_DICTIONARY_ACCESSIBILITYNAMETYPEVALUEO7_DICTIONARY_ACCESSIBILITYbooleanFALSE4 加强拜访掌握加固目的设置正确识别客户端用户,并限制操作系统用户数量(包括治理员权限、root 权限、一般用户权限等)加固方法1 使 用 文 本 方 式 , 打 开 数 据 库 配 置 文 件 init.ora ; 设 置 参 数REMOTE_OS_AUTHENT值为 FALSE SAP 系统不行设置为 False2 在数据库的账户治理中删除不必要的操作系统账号设置(需重启数据库):alter sy
4、stem set remote_os_authent=false scope=spfile;验证:SQL show parameter remote_os_authent NAMETYPEVALUEremote_os_authentbooleanFALSE5 监听程序的治理加固目的通过设置 listener.ora 文件中的参数ADMIN_RESTRICTIONS_listener_name来防止远程对监听程序的非授权治理.加固方法在 listener.ora 文件中,设置ADMIN_RESTRICTIONS_listener_name=ON. LISTENER 加拜访密码: only 9i$
5、ORACLE_HOME/network/admin/listener.oraPASSWORDS_LISTENER =10g : 监听默认为本地操作系统帐号认证,即禁止远程治理验证:Lsnrctl status,查看输出SecurityON: Local OS Authentication6 关闭 Extproc 功能加固目的由于 extproc 存在安全问题答应用户不进行身份认证就可以调用系统函数, 因此,假如不需要该功能必需关闭.加固方法修改 TNSNAMES.ORA和 LISTENER.ORA文件,删除以下条目:icache_extproc PLSExtproc Extproctnsnam
6、es.ora : #EXTPROC_CONNECTION_DATA = # DESCRIPTION =#ADDRESS_LIST =#ADDRESS = PROTOCOL = IPCKEY = 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#ADDRESS = PROTOCOL = IPCKEY
7、= EXTPROC07 密码文件治理加固目的配置密码文件的使用方式加固方法使 用 文 本 方 式 , 打 开 数 据 库 配 置 文 件 init.ora; 设 置 参 数REMOTE_LOGIN_PASSWORD_FILE=NONE.只能使用 OSNone: 使得 oracle 不使用密码文件,只能使用OS 认证,不答应通过担心全网络进行远程治理.Exclusive:可以使用唯独的密码文件,但只限一个数据库.密码文件中可以包括除了 sys 用户的其他用户 .Shared: 可以在多个数据库上使用共享的密码文件.但是密码文件中只能包含sys用户 .设置:(需重启数据库)alter system
8、 set remote_login_passwordfile=nonescope=spfile ;验证:SQL show parameter remote_login_passwordfile NAMETYPEVALUEremote_login_passwordfilestringNONE8 用户账号治理加固目的为了安全考虑,应用锁定Oracle 当中不需要的用户;或转变缺省用户的密码.加固方法锁 定 不 需要 的 用 户 , 使用 SQL 语 句: ALTERUSERuser PASSWORD EXPIRE ;留意锁定 MGMT_VIEW、DBSNMP 、SYSMAN帐号或修改密码 .假如要
9、使用 DBConsole , DBSNMP 、SYSMAN不能锁定,请修改密码DIP 、EXFSYS 、OUTLN 、TSMSYS 、WMSYS 默认已锁定,请验证 .9 最小权限使用规章加固目的1 应当只供应最小权限给用户(包括SYSTEM 和 OBJECT 权限)2 从 PUBLIC 组 中 撤 回 不 必 要 的 权 限 或 角 色 . ( 如 : UTL_SMTP 、UTL_TCP 、 UTL_HTTP 、 UTL_FILE 、 DBMS_RANDON 、DBMS_SQL 、DBMS_SYS_SQL 、DBMS_BACKUP_RESTORE )加固方法撤销不需要的权限和角色,使用SQL
10、 语句REVOKE EXECUTE ON SYS.UTL_HTTP FROM PUBLIC;REVOKE EXECUTE ON SYS.UTL_FILE FROM PUBLIC;REVOKE EXECUTE ON SYS.UTL_SMTP FROM PUBLIC;REVOKE SELECT ON ALL_USERS FROM PUBLIC;验证:OEM 治理器中,安全性 -用户 -PUBLIC- 已授予的对象权限col pp format a35SELECTs.privilege|ON|s.owner|.|NVLl.longname,s.table_namepp, s.grantable FR
11、OMsys.dba_tab_privss,javasnmlWHEREs.table_name=l.short+AND s.grantee=PUBLICand s.privilege = EXECUTE and s.table_name like UTL%;10 DBSNMP 用户的爱护加固目的Oracle 数据库系统假如采纳典型安装后,自动创建一个叫做DBSNMP的用户,该用户答应Oracle 系统的智能代理 intelligentAgent ,该用户的缺省密码也是 “DBSNM”P .假如遗忘修改该用户的口令,任何人都可以通过该用户存 取 数 据 库 系 统 . 其 他 有 威 胁 的 帐
12、号 仍 有 : CTXSYS , MDSYS ,ORDPLUGINS , ORDSYS , OUTLN 等.加固方法锁定该账号,或者更换密码11 SYS 用户加固目的Oracle 数据库系统安装后,自动创建一个叫做SYS 的数据库治理员用户, 当该用户 sysdba 方式连接数据库时,便具有全部系统权限,因而对它的保护尤为重要 .加固方法更换 SYS 用户密码,符合密码复杂度要求; 新建一个 DBA 用户,作为日常治理使用.12 密码策略加固目的在 Oracle,我们可以通过修改用户概要文件来设置密码的安全策略,可以自定义密码的复杂度.在概要文件中有以下参数是和密码安全有关怀的:FAILED_
13、LOGIN_ATTEMPTS: 最大错误登录次数PASSWORD_GRACE_TIME:口令失效后锁定时间PASSWORD_LIFE_TIME:口令有效时间PASSWORD_LOCK_TIME:登录超过有效次数锁定时间PASSWORD_REUSE_MAX:口令历史记录保留次数PASSWORD_REUSE_TIME:口令历史记录保留时间PASSWORD_VERIFY_FUNCTION:口令复杂度审计函数加固方法说明:PASSWORD_LIFE_TIME:口令有效时间 口令使用期限(应用系统帐号暂不修改).password_grace_time 指的是在你的密码已经过期以后, 第一次登录时间开头往
14、后统计 , 使系统可以使用的日期限度.PASSWORD_REUSE_TIME是重用密码的最小时间间隔,单位是天.可以给出整数或分数,如1/1440 表示 1 分钟(出于效率的考虑,oracle 不会每分钟都去进行检查,一般来说,有5 分钟左右的误差,因此假如这个数小于 1/144 就没有多大的意义) .PASSWORD_REUSE_MAX是重用密码前更换密码的最小次数. ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 60;ALTER PROFILE default LIMIT PASSWORD_LOCK_TIME 0.5;修改 Oracle
15、 供应的验证函数文件$ORACLE_HOME/rdbms/admin/utlpwdmg.sql其中 IF lengthpassword 4一行改为 8,并将最终一段修改为ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 60 PASSWORD_LOCK_TIME 30/1440PASSWORD_VERIFY_FUNCTION verify_function;执行 start utlpwdmg.sql设置后,密码复杂度必需包含字母、数字、标点(密码不区分大小写),最小长度为8.最大错误登录次数为60 次,账号锁定时间为30 分钟验证: OEM 安
16、全性概要文件select * from dba_profiles ;创建验证函数:CREATE OR REPLACE FUNCTION verify_function username varchar2,password varchar2, old_password varchar2RETURN boolean IS n boolean;m integer;differ integer;isdigit boolean;ischar boolean;ispunct boolean;digitarray varchar220;punctarray varchar225;chararray varc
17、har252;BEGINdigitarray:= 0123456789;chararray:=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;punctarray:=.#$%&*+,-/:;._;- Check if the password is same as the usernameIF NLS_LOWERpassword = NLS_LOWERusername THEN raise_application_error-20001, Password same as orsimilar to user;END IF;- Check
18、 for the minimum length of the password IF lengthpassword 8 THENraise_application_error-20002, Password length less than 8;END IF;- Check if the password is too simple. A dictionary of words may be- maintained and a check may be made so as not to allow the words- that are too simple for the password
19、.IF NLS_LOWERpassword IN welcome, database, account, user, password, oracle, computer, abcd THENraise_application_error-20002, Password too simple;END IF;- Check if the password contains at least one letter, one digit and one- punctuation mark.- 1. Check for the digit isdigit:=FALSE;m := lengthpassw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 Oracle 数据库 系统安全 配置 手册
限制150内