数据库加固方案


一、检查项名称:检查是否限制具备数据库超级管理员(SYSDBA)权限的用户远程登录
判断条件:1. 以SYSDBA用户不能远程连接到数据库。
操作:
SQL> show parameter REMOTE

NAME                                             TYPE            VALUE
------------------------------------ ----------- ------------------------------
remote_archive_enable                    string             true
remote_dependencies_mode           string        TIMESTAMP
remote_listener                                string            ESSLN
remote_login_passwordfile               string        EXCLUSIVE
remote_os_authent                          boolean        FALSE
remote_os_roles                               boolean        FALSE

SQL> alter sysdba set REMOTE_LOGIN_PASSWORDFILE=NONE SCOPE=SPFILE;
shutdown immediate.
startup.
在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆。

select t.VALUE from v$parameter t where upper(t.NAME) like '%REMOTE_LOGIN_PASSWORDFILE%'

(1)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none:
oracle安装用户本地sqlplus “/ as sysdba”无法登录
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”无法登录
非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”无法登录

(2)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= none:
oracle安装用户本地sqlplus “/ as sysdba”无法登录
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登录
非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”能登录

(3)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= (NTS):
oracle安装用户本地sqlplus “/ as sysdba”能登录
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”无法登录
非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”无法登录

(4)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= (NTS):
oracle安装用户本地sqlplus “/ as sysdba”能登录
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登录
非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”能登录

文章来自于:http://blog.163.com/ansel_zlh/blog/static/1037271720094535654606/

二、检查是否限制可以访问数据库的地址
判断条件:在非信任的客户端以数据库账户登陆被提示拒绝
vi $ORACLE_HOME/network/admin/sqlnet.ora
tcp.validnode_checking = yes
tcp.invited_nodes = (ip1,ip2…)
   -----允许
重启监听测试...

tcp.validnode_checking的值为yes

三、监听设置密码
[oracle@test ~]$ lsnrctl                         
                                                                                                                           
LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 08:24:09                                                  
Copyright (c) 1991, 2006, Oracle Corporation.  All rights reserved.                                                        

Welcome to LSNRCTL, type "help" for information. 

LSNRCTL> set current_listener listener_name         ----设置当前监听器                                                            
Current Listener is listener_name   
LSNRCTL> start             --启动过程也不需要任何密码,启动的详细信息省略                                                   
LSNRCTL> change_password   --使用change_password来设置密码                                                                 
Old password:        旧密码                                                                                                      
New password:       新密码                                                                                                       
Reenter new password:      新密码                                                                                                
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))                                                 
Password changed for listener_name                                                                                      
The command completed successfully   
                                                                                     
LSNRCTL> save_config        --save_config失败                                                                    
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))                                                 
TNS-01169: The listener has not recognized the password
                                                                 
LSNRCTL> set password       --输入新设定的密码验证                                                                         
Password:                                                                                                                  
The command completed successfully   
                                                                                     
LSNRCTL> save_config       -->再次save_config成功
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))                                                 
Saved listener_demo92 configuration parameters.                                                                            
Listener Parameter File   /oracle/92/network/admin/listener.ora                                                            
Old Parameter File   /oracle/92/network/admin/listener.bak                                                                 
The command completed successfully                                                                                         
                                                                                                                           
增加密码之后在listener.ora文件中新增密码选项(注:尽管使用了密码管理方式,仍然可以无需密码启动监听)  
[oracle@test admin]$ more listener.ora                                                                                     
    #----ADDED BY TNSLSNR 26-JUN-2018 15:12:48---                                                                             
    PASSWORDS_listener_name =                                                                                              
    #--------------------------------------------                                                                            
   
四、设置数据库将自动断开超过10分钟的空闲远程连接
cd $ORACLE_HOME/nework/admin
vi sqlnet.ora

在文件中新增一选项:

SQLNET.EXPIRE_TIME=10(分钟)

五、设置客户端和服务器是否使用加密,可选值
cd $ORACLE_HOME/nework/admin
vi sqlnet.ora

在文件中新增一选项:
sqlnet.encryption=requested

选项:

accepted(如果对方设置为requested或required,则使用加密服务)
rejected(不使用加密服务,即使对方设置为requested也不使用)
requested(如果对方使用加密服务,则使用加密服务)
required(使用加密服务,如果对方没有使用则无法连接)
SQLNET.ENCRYPTION_CLIENT
SQLNET.ENCRYPTION_SERVER
#设置使用的加密算法
SQLNET.ENCRYPTION_TYPES_CLIENT
SQLNET.ENCRYPTION_TYPES_SERVER
六、判断条件:连续6次用错误的密码连接用户,第7次时用户将被锁定
操作:为用户创建profile
CREATE PROFILE password_profile LIMIT 
FAILED_LOGIN_ATTEMPTS 6 
PASSWORD_LOCK_TIME 1/96


命令:select limit from dba_profiles t where resource_name = 'FAILED_LOGIN_ATTEMPTS',回显中default值变成6
七、修改密码有效时间为90天
SQL>alter profile default limit password_life_time 90;
验证:
select limit from dba_profiles t where resource_name = 'PASSWORD_LIFE_TIME';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值