前言
數(shù)據(jù)庫(kù)安全配置中,需要做相關(guān)的安全加固工作。以確認(rèn)數(shù)據(jù)庫(kù)的安全,但是,有些時(shí)候,操作不當(dāng)或者數(shù)據(jù)庫(kù)業(yè)務(wù)賬號(hào)修改密碼后,而程序的連接數(shù)據(jù)庫(kù)的配置封裝在jar里,如果jar內(nèi)的連接數(shù)據(jù)庫(kù)的配置信息沒(méi)有做相應(yīng)的修改的話(huà)。就會(huì)對(duì)數(shù)據(jù)庫(kù)的此業(yè)務(wù)賬號(hào)造成嚴(yán)重的后果。
本文將詳細(xì)介紹關(guān)于Oracle 11g安全加固的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
1.安全加固的檢查方向
1.1.sysdba用戶(hù)遠(yuǎn)程登錄限制(查看Oracle登錄認(rèn)證方式)
檢查:
show parameter remote_login_passwordfile
整改:
alter system set remote_login_passwordfile = NONE scope=spfile;
注:需要重啟庫(kù)生效。
1.2.是否開(kāi)啟了資源限制
show parameter resource_limitalter system set resource_limit = true;
1.3.登錄失敗的帳號(hào)鎖定策略
select * from dba_profiles order by 1;
關(guān)注FAILED_LOGIN_ATTEMPTS的設(shè)定值
1.4.數(shù)據(jù)庫(kù)用戶(hù)帳號(hào)檢查
檢查:
select username,profile from dba_users where account_status='OPEN';
整改:
鎖定用戶(hù):alter user <用戶(hù)名> lock;
刪除用戶(hù):drop user <用戶(hù)名> cascade;
1.5.范例數(shù)據(jù)庫(kù)帳號(hào)
是否存在默認(rèn)的范例數(shù)據(jù)庫(kù)賬號(hào)scott等,可以考慮刪除scott賬號(hào)
1.6.dba權(quán)限賬戶(hù)檢查
select * from dba_role_privs where granted_role='DBA';
1.7.數(shù)據(jù)庫(kù)賬戶(hù)口令加密存儲(chǔ)
11g數(shù)據(jù)里面的賬戶(hù)口令本來(lái)就是加密存儲(chǔ)的。
1.8.數(shù)據(jù)庫(kù)密碼安全性校驗(yàn)函數(shù)
select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';
1.9.設(shè)定信任IP集
只需在服務(wù)器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中設(shè)置以下行:
tcp.validnode_checking = yes tcp.invited_nodes = (ip1,ip2…)
1.10.超時(shí)的空閑遠(yuǎn)程連接是否自動(dòng)斷開(kāi)
根據(jù)實(shí)際需要設(shè)置合適的數(shù)值。
在$ORACLE_HOME/network/admin/sqlnet.ora中設(shè)置下面參數(shù):
SQLNET.EXPIRE_TIME=10
2.安全加固檢查safeCheck.sh
#!/bin/bash#name:safeCheck.sh#function:to create a safe check report.#usage: oracle用戶(hù)登錄,執(zhí)行 sh safeCheck.sh > /tmp/safeCheck.log#logon databasesqlplus -S / as sysdba <<EOF--formatprompt ============================prompt == format prompt ============================promptset linesize 140 pagesize 50col username for a30col profile for a30col resource_name for a30col limit for a30--checkprompt ============================prompt == 1.sysdba用戶(hù)遠(yuǎn)程登錄限制 prompt ============================promptshow parameter remote_login_passwordfileprompt 結(jié)果應(yīng)為none.prompt ======================prompt == 2.resource_limit prompt ======================promptshow parameter resource_limitprompt 結(jié)果應(yīng)為true.prompt ===========================prompt == 3.登錄失敗的帳號(hào)鎖定策略 prompt ===========================promptselect * from dba_profiles order by 1;prompt 關(guān)注FAILED_LOGIN_ATTEMPTS參數(shù)prompt ===========================prompt == 4.數(shù)據(jù)庫(kù)用戶(hù)帳號(hào)檢查 prompt ===========================promptselect username,profile from dba_users where account_status='OPEN';prompt 正常使用的用戶(hù)列表prompt ==========================prompt == 5.范例數(shù)據(jù)庫(kù)帳號(hào) prompt ==========================promptselect * from all_users order by created;prompt 關(guān)注有無(wú)示例賬戶(hù)scottprompt ===========================prompt == 6.dba權(quán)限賬戶(hù)檢查 prompt ===========================promptprompt ===========================prompt == 7.數(shù)據(jù)庫(kù)賬戶(hù)口令加密存儲(chǔ) prompt ===========================promptprompt =============================prompt == 8.數(shù)據(jù)庫(kù)密碼安全性校驗(yàn)函數(shù) prompt =============================promptselect limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';prompt 結(jié)果應(yīng)該不為null--logoff databaseEOF# check the filesecho ===================echo == 9.設(shè)定信任IP集 echo ===================echomore $ORACLE_HOME/network/admin/sqlnet.ora#添加如下#tcp.validnode_checking = yes #tcp.invited_nodes = (ip1,ip2…)echo ===================================echo == 10.超時(shí)的空閑遠(yuǎn)程連接是否自動(dòng)斷開(kāi) echo ===================================echo#根據(jù)實(shí)際需要設(shè)置合適的數(shù)值。more $ORACLE_HOME/network/admin/sqlnet.ora#添加如下一行#SQLNET.EXPIRE_TIME=10
3.安全加固執(zhí)行safeExec.sh
#!/bin/bash#name:safeExec.sh#function:to execute the script for safe.#usage: oracle用戶(hù)登錄,執(zhí)行 sh safeExec.sh > /tmp/safeExec.log#logon databasesqlplus -S / as sysdba <<EOF--formatprompt ============================prompt == format prompt ============================set linesize 140 pagesize 50col username for a30col profile for a30col resource_name for a30col limit for a30--executeprompt ============================prompt == 1.sysdba用戶(hù)遠(yuǎn)程登錄限制 prompt ============================alter system set remote_login_passwordfile=none scope=spfile;prompt ======================prompt == 2.resource_limit prompt ======================alter system set resource_limit=true;prompt ===========================prompt == 3.登錄失敗的帳號(hào)鎖定策略 prompt ===========================alter profile default limit FAILED_LOGIN_ATTEMPTS 10; prompt ===========================prompt == 4.數(shù)據(jù)庫(kù)用戶(hù)帳號(hào)檢查 prompt ===========================--select username,profile from dba_users where account_status='OPEN';prompt I think I have nothing to do in this step.prompt ===========================prompt == 5.范例數(shù)據(jù)庫(kù)帳號(hào) prompt ===========================prompt 是否刪除范例scott用戶(hù)?--drop user scott cascade;prompt ===========================prompt == 6.dba權(quán)限賬戶(hù)檢查 prompt ===========================prompt I think I have nothing to do in this step.prompt ===========================prompt == 7.數(shù)據(jù)庫(kù)賬戶(hù)口令加密存儲(chǔ) prompt ===========================prompt 11g版本,數(shù)據(jù)庫(kù)層面就是加密的嘛~prompt =============================prompt == 8.數(shù)據(jù)庫(kù)密碼安全性校驗(yàn)函數(shù) prompt =============================prompt 執(zhí)行創(chuàng)建安全性校驗(yàn)函數(shù)的腳本@?/rdbms/admin/utlpwdmg.sql--logoff databaseEOF# check the filesecho ===================echo == 9.設(shè)定信任IP集 echo ===================more $ORACLE_HOME/network/admin/sqlnet.ora#添加如下#tcp.validnode_checking = yes #tcp.invited_nodes = (ip1,ip2…)echo ===================================echo == 10.超時(shí)的空閑遠(yuǎn)程連接是否自動(dòng)斷開(kāi) echo ===================================#根據(jù)實(shí)際需要設(shè)置合適的數(shù)值。more $ORACLE_HOME/network/admin/sqlnet.ora#添加如下一行#SQLNET.EXPIRE_TIME=10
針對(duì)第9和第10步驟中的sqlnet.ora配置文件示例:
注意:如果是ASM實(shí)例,sqlnet.ora配置文件是grid用戶(hù)下$ORACLE_HOME/network/admin/sqlnet.ora的。
SQLNET.EXPIRE_TIME=10tcp.validnode_checking = yestcp.invited_nodes = (192.168.99.*)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選