Oracle 11g實(shí)現(xiàn)安全加固方法步驟
網(wǎng)絡(luò)安全是目前互聯(lián)網(wǎng)的熱門話題之一,作為個(gè)人用戶的我們同樣需要關(guān)注,做好防護(hù)。這篇文章主要給大家介紹了關(guān)于Oracle 11g實(shí)現(xiàn)安全加固的完整步驟,文中通過示例代碼將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Oracle 11g具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
方法步驟
1.安全加固的檢查方向
1.1.sysdba用戶遠(yuǎn)程登錄限制(查看Oracle登錄認(rèn)證方式)
檢查:
show parameter remote_login_passwordfile
整改:
alter system set remote_login_passwordfile = NONE scope=spfile;
注:需要重啟庫(kù)生效。
1.2.是否開啟了資源限制
show parameter resource_limit
alter 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ào)檢查
檢查:
select username,profile from dba_users where account_status='OPEN';
整改:
鎖定用戶:alter user <用戶名> lock;
刪除用戶:drop user <用戶名> cascade;
1.5.范例數(shù)據(jù)庫(kù)帳號(hào)
是否存在默認(rèn)的范例數(shù)據(jù)庫(kù)賬號(hào)scott等,可以考慮刪除scott賬號(hào)
1.6.dba權(quán)限賬戶檢查
?
1
select * from dba_role_privs where granted_role='DBA';
1.7.數(shù)據(jù)庫(kù)賬戶口令加密存儲(chǔ)
11g數(shù)據(jù)里面的賬戶口令本來就是加密存儲(chǔ)的。
1.8.數(shù)據(jù)庫(kù)密碼安全性校驗(yàn)函數(shù)
?
1
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è)置以下行:
?
1
2
tcp.validnode_checking = yes
tcp.invited_nodes = (ip1,ip2…)
1.10.超時(shí)的空閑遠(yuǎn)程連接是否自動(dòng)斷開
根據(jù)實(shí)際需要設(shè)置合適的數(shù)值。
在$ORACLE_HOME/network/admin/sqlnet.ora中設(shè)置下面參數(shù):
?
1
SQLNET.EXPIRE_TIME=10
2.安全加固檢查safeCheck.sh
#!/bin/bash
#name:safeCheck.sh
#function:to create a safe check report.
#usage: oracle用戶登錄,執(zhí)行 sh safeCheck.sh > /tmp/safeCheck.log
#logon database
sqlplus -S / as sysdba <
--format
prompt ============================
prompt == format
prompt ============================
prompt
set linesize 140 pagesize 50
col username for a30
col profile for a30
col resource_name for a30
col limit for a30
--check
prompt ============================
prompt == 1.sysdba用戶遠(yuǎn)程登錄限制
prompt ============================
prompt
show parameter remote_login_passwordfile
prompt 結(jié)果應(yīng)為none.
prompt ======================
prompt == 2.resource_limit
prompt ======================
prompt
show parameter resource_limit
prompt 結(jié)果應(yīng)為true.
prompt ===========================
prompt == 3.登錄失敗的帳號(hào)鎖定策略
prompt ===========================
prompt
select * from dba_profiles order by 1;
prompt 關(guān)注FAILED_LOGIN_ATTEMPTS參數(shù)
prompt ===========================
prompt == 4.數(shù)據(jù)庫(kù)用戶帳號(hào)檢查
prompt ===========================
prompt
select username,profile from dba_users where account_status='OPEN';
prompt 正常使用的用戶列表
prompt ==========================
prompt == 5.范例數(shù)據(jù)庫(kù)帳號(hào)
prompt ==========================
prompt
select * from all_users order by created;
prompt 關(guān)注有無示例賬戶scott
prompt ===========================
prompt == 6.dba權(quán)限賬戶檢查
prompt ===========================
prompt
prompt ===========================
prompt == 7.數(shù)據(jù)庫(kù)賬戶口令加密存儲(chǔ)
prompt ===========================
prompt
prompt =============================
prompt == 8.數(shù)據(jù)庫(kù)密碼安全性校驗(yàn)函數(shù)
prompt =============================
prompt
select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';
prompt 結(jié)果應(yīng)該不為null
--logoff database
EOF
# check the files
echo ===================
echo == 9.設(shè)定信任IP集
echo ===================
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)斷開
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用戶登錄,執(zhí)行 sh safeExec.sh > /tmp/safeExec.log
#logon database
sqlplus -S / as sysdba <
--format
prompt ============================
prompt == format
prompt ============================
set linesize 140 pagesize 50
col username for a30
col profile for a30
col resource_name for a30
col limit for a30
--execute
prompt ============================
prompt == 1.sysdba用戶遠(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à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用戶?
--drop user scott cascade;
prompt ===========================
prompt == 6.dba權(quán)限賬戶檢查
prompt ===========================
prompt I think I have nothing to do in this step.
prompt ===========================
prompt == 7.數(shù)據(jù)庫(kù)賬戶口令加密存儲(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 database
EOF
# check the files
echo ===================
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)斷開
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用戶下$ORACLE_HOME/network/admin/sqlnet.ora的。
SQLNET.EXPIRE_TIME=10
tcp.validnode_checking = yes
tcp.invited_nodes = (192.168.99.*)
相關(guān)閱讀:2018網(wǎng)絡(luò)安全事件:
一、英特爾處理器曝“Meltdown”和“Spectre漏洞”
2018年1月,英特爾處理器中曝“Meltdown”(熔斷)和“Spectre” (幽靈)兩大新型漏洞,包括AMD、ARM、英特爾系統(tǒng)和處理器在內(nèi),幾乎近20年發(fā)售的所有設(shè)備都受到影響,受影響的設(shè)備包括手機(jī)、電腦、服務(wù)器以及云計(jì)算產(chǎn)品。這些漏洞允許惡意程序從其它程序的內(nèi)存空間中竊取信息,這意味著包括密碼、帳戶信息、加密密鑰乃至其它一切在理論上可存儲(chǔ)于內(nèi)存中的信息均可能因此外泄。
二、GitHub 遭遇大規(guī)模 Memcached DDoS 攻擊
2018年2月,知名代碼托管網(wǎng)站 GitHub 遭遇史上大規(guī)模 Memcached DDoS 攻擊,流量峰值高達(dá)1.35 Tbps。然而,事情才過去五天,DDoS攻擊再次刷新紀(jì)錄,美國(guó)一家服務(wù)提供商遭遇DDoS 攻擊的峰值創(chuàng)新高,達(dá)到1.7 Tbps!攻擊者利用暴露在網(wǎng)上的 Memcached 服務(wù)器進(jìn)行攻擊。網(wǎng)絡(luò)安全公司 Cloudflare 的研究人員發(fā)現(xiàn),截止2018年2月底,中國(guó)有2.5萬(wàn) Memcached 服務(wù)器暴露在網(wǎng)上 。
三、蘋果 iOS iBoot源碼泄露
2018年2月,開源代碼分享網(wǎng)站 GitHub(軟件項(xiàng)目托管平臺(tái))上有人共享了 iPhone 操作系統(tǒng)的核心組件源碼,泄露的代碼屬于 iOS 安全系統(tǒng)的重要組成部分——iBoot。iBoot 相當(dāng)于是 Windows 電腦的 BIOS 系統(tǒng)。此次 iBoot 源碼泄露可能讓數(shù)以億計(jì)的 iOS 設(shè)備面臨安全威脅。iOS 與 MacOS 系統(tǒng)開發(fā)者 Jonathan Levin 表示,這是 iOS 歷史上最嚴(yán)重的一次泄漏事件。
四、韓國(guó)平昌冬季奧運(yùn)會(huì)遭遇黑客攻擊
2018年2月,韓國(guó)平昌冬季奧運(yùn)會(huì)開幕式當(dāng)天遭遇黑客攻擊,此次攻擊造成網(wǎng)絡(luò)中斷,廣播系統(tǒng)(觀眾不能正常觀看直播)和奧運(yùn)會(huì)官網(wǎng)均無法正常運(yùn)作,許多觀眾無法打印開幕式門票,最終未能正常入場(chǎng)。
五、加密貨幣采礦軟件攻擊致歐洲廢水處理設(shè)施癱瘓
2018年2月中旬,工業(yè)網(wǎng)絡(luò)安全企業(yè) Radiflow 公司表示,發(fā)現(xiàn)四臺(tái)接入歐洲廢水處理設(shè)施運(yùn)營(yíng)技術(shù)網(wǎng)絡(luò)的服務(wù)器遭遇加密貨幣采礦惡意軟件的入侵。該惡意軟件直接拖垮了廢水處理設(shè)備中的 HMI 服務(wù)器 CPU,致歐洲廢水處理服務(wù)器癱瘓 。
Radiflow 公司稱,此次事故是加密貨幣惡意軟件首次對(duì)關(guān)鍵基礎(chǔ)設(shè)施運(yùn)營(yíng)商的運(yùn)營(yíng)技術(shù)網(wǎng)絡(luò)展開攻擊。由于受感染的服務(wù)器為人機(jī)交互(簡(jiǎn)稱HMI)設(shè)備,之所以導(dǎo)致廢水處理系統(tǒng)癱瘓,是因?yàn)檫@種惡意軟件會(huì)嚴(yán)重降低 HMI 的運(yùn)行速度。
網(wǎng)絡(luò)安全相關(guān)文章:
2.網(wǎng)絡(luò)安全技術(shù)的總結(jié)
3.關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)安全