centos oracle 修改監聽服務名_幹貨!資料庫安全之Oracle資料庫安全加強前言操作流程帳号權限加強資料通路控制加強網絡通路控制加強密碼政策加強審計政策加強漏洞加強
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5yMlVzM0gjNjF2NkFjYkRWZzQjYwIjMjJDMkNjMiR2Nx8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.gif)
前言
最近打算整理一下資料,寫幾篇關于資料庫安全的文章。特此記錄,友善查閱。
操作流程
帳号權限加強
1、限制應用使用者在資料庫中的權限,盡量保證最小化避免授予了 DBA 權限
1.檢視權限
SQL>SELECT * FROM dba_sys_privs WHERE grantee=; -- 系統權限
SQL>SELECT * FROM dba_tab_privs WHERE grantee=; -- 對象權限
SQL>SELECT * FROM dba_role_privs WHERE grantee=; --賦予的角色
2.收回相應權限(例如收回 select any table 權限)
SQL>REVOKE select any table FROM ;
3.收回應用使用者的 DBA 角色
SQL>REVOKE dba FROM ;
注意:避免配置設定權限過大或過小
2、撤消 public 角色的程式包執行權限
1.檢視 public 角色的程式包執行權限
SQL>SELECT table_name FROM dba_tab_privs WHERE grantee='PUBLIC' and
privilege='EXECUTE';
2.撤銷 public 角色的程式包執行權限(例如撤銷在 utl_file 包上的執行權限)
SQL>REVOKE execute ON utl_file FROM public;
Oracle 官方建議撤銷 public 角色對 utl_file、 utl_http、 utl_tcp、 utl_smtp、dbms_random 程式包的執行權限。
3、修改系統帳戶的預設密碼
(特别是管理者角色類帳戶)鎖定所有不需要的使用者
1.修改 sys 和 system 密碼
SQL>ALTER USER sys IDENTIFIED BY ;
SQL>ALTER USER system IDENTIFIED BY ;
2.鎖定不需要的使用者
SQL>ALTER USER ACCOUNT LOCK;
4、删除系統中多餘的自建帳号
1.檢視使用者自建賬号
SQL>SELECT username FROM all_users;
2.删除或者禁用多餘自建賬号
SQL>DROP USER CASCADE;
5、為所有應用使用者配置強密碼
1.根據設定的密碼政策修改弱密碼
SQL>ALTER USER IDENTIFIED BY ;
資料通路控制加強
1、嚴格限制庫檔案的通路權限
確定除屬主和 root 外,其他使用者對庫檔案沒有寫權限
1.用作業系統指令檢視庫檔案通路權限(以 RedHat Linux 為例)
ls -l $ORACLE_BASE/oradata
2.用作業系統指令删除庫檔案組和其他使用者的寫權限
chmod 640 $ORACLE_BASE/oradata/*
3.Windows 系統同理(方法不同)
2、配置$ORACLE_HOME/bin
設定$ORACLE_HOME/bin 其下所有程式的通路權限或其他安全控制機制
1.用作業系統指令檢視 bin 目錄下所有程式檔案的通路權限(以 RedHat Linux 為例)
ls -l $ORACLE_HOME/bin
2.用作業系統指令删除組和其他使用者的寫權限
chmod 640 $ORACLE_HOME/bin/*
注意:修改權限可能對部分應用系統造成影響,需要聯系業務部門和應用系統廠商做好相關的測試工作
3、停止或禁用與承載業務無關的服務或元件
在不影響業務系統正常運作情況下,停止或禁用與承載業務無關的服務或元件
1.用作業系統指令檢視有無與業務無關的服務或元件
2.用作業系統指令停止或禁用與業務無關的服務或元件
4、清除資料庫無用的東西
1.檢視資料庫中表或視圖等對象
SQL>SELECT * FROM dba_tables;
SQL>SELECT * FROM dba_views;
2.删除資料庫中存在的無用的、測試的、廢棄的表或視圖
SQL>DROP TABLE ;
SQL>DROP VIEW ;
注意:需要和業務部門确認
網絡通路控制加強
1、IP限制
設定 TNS 登入的 IP 限制,僅允許最少的必要的 IP 位址可連接配接 TNS 監聽器
1.在目錄$ORACLE_HOME/network/admin 下修改 sqlnet.ora 檔案實作 TNS 登入 IP 限制,
設定下列配置資訊:
tcp.validnode_checking=yes
#允許通路的 ip
tcp.invited_nodes =(ip1,ip2,……)
#不允許通路的 ip
tcp.excluded_nodes=(ip1,ip2,……)
2.修改 sqlnet.ora 後,重新啟動 listener 服務可能對部分應用系統
2、關閉遠端作業系統認證
1.在目錄$ORACLE_HOME/network/admin 下修改 sqlnet.ora 檔案,設定下列配置資訊:
sqlnet.authentication_services=(NONE)
2.修改參數 Remote_login_passwordfile 為 EXCLUSIVE 或 SHARED
SQL>ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
3.修改參數 REMOTE_OS_AUTHENT
SQL>ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE SCOPE=SPFILE;
4.重新開機資料庫和監聽使修改生效
注意:需要重新開機服務,應提前通知業務部門
3、修改預設端口
在不影響應用的前提下,更改預設的1521端口
1. 檢視目前監聽的狀态
lsnrctl status
2. 停止監聽
lsnrctl stop
3. 修改監聽檔案的端口号,在目錄$ORACLE_HOME/network/admin 下修改 listener.ora 檔案
(例如把端口号改為11251)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST=LOCALHOST)(PORT=11251))
)
)
4. 修改初始化參數 local_listener
SQL>ALTER SYSTEM SET local_listener="(address=(protocol=tcp)(host=localhost)(port=11251))";
SQL>quit
5. 重新開機監聽器
lsnrctl start
6. 修改完畢,使用新端口登入測試
netstat -tunap | grep 11251
lsnrctl status
用戶端連接配接測試
4、限制遠端管理
限制對監聽器的遠端管理,并 設 置監 聽器 管理 密碼(8i)
1.進入監聽設定狀态
lsnrctl
2.設定目前監聽器
set current_listener
3.設定密碼
change_password
set password
4.儲存設定
save_config
5.檢查 listener.ora 檔案
看是否有一條 PASSWORDS_的記錄
5、外部程式調用監聽配置的删除
1.打開 listener.ora 檔案,删除以下配置檔案:
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora81)
(PROGRAM = extproc)
)
2. 重新開機監聽
3. 檢視監聽狀态
注意:
預設安裝時,會安裝一個 PL/SQL 外部程式(ExtProc)條目在 listener.ora中,是 oracle 為調
用外部程式預設配置的監聽,它的名字通常是 ExtProc 或PLSExtProc,但一般不會使用它,可以直接從 listener.ora中将這項移除,因為對 ExtProc 已經有多種攻擊手段了,在不使用外部程式時,oracle 也是建議删除的。
密碼政策加強
1、 設定密碼複雜度要求
1.檢查 profile 檔案設定
SQL>SELECT * FROM dba_profiles;
2.建立密碼複雜度函數
SQL>@$ORACLE_HOME/rdbms/admin/utlpwdmg.sql
3.設定密碼複雜度
要求長度不小于4位字元串,而且是字母和數字或特殊字元的混合,使用者
名和密碼禁止相同
SQL>ALTER PROFILE "DEFAULT" LIMIT password_verify_function verify_function;
注意:Oracle 密碼複雜度包含的特殊字元不是任意特殊字元都可以,一般以下劃線、 $、 *等符号為主
2、設定密碼使用期限要求到期後自動更改
1.檢查 profile 檔案設定
SQL>SELECT * FROM dba_profiles;
2.設定 profile 密碼政策,建議使用控制台設定
SQL>ALTER PROFILE "DEFAULT" LIMIT password_life_time 30;
3、設定政策對密碼嘗試次數進行限制
1.檢查 profile 檔案設定
SQL>SELECT * FROM dba_profiles;
2.設定 profile 密碼政策
SQL>ALTER PROFILE "DEFAULT" LIMIT failed_login_attempts 5 password_lock_time 1;
建議:設定密碼嘗試次數為5 次,登入超過有效次數鎖定時間為 1天。缺陷是萬一有惡意通路,在輸入多次錯誤密碼後此使用者就被鎖定導緻不可用。
審計政策加強
1、審計配置
啟用相應的審計功能,配置稽核政策使系統能夠稽核資料庫管理和安全相關操作的資訊,
建議對 SYSDBA審計操作
1.啟用審計功能
SQL>ALTER SYSTEM SET audit_trail=os scope=spfile;
2.啟用對 sysdba 的活動審計
SQL>ALTER SYSTEM SET audit_sys_operations=true;
3.重新開機資料庫,使設定生效
若是 windows 平台,audit trail 會記錄在 windows 的事件管理器中,
若是linux/unix 平台則會記錄在audit_file_dest 參數指定檔案中;
注意:審計功能對資料庫的性能和磁盤空間要求較高;需要重新開機資料庫,應提前通知業務部門
2、配置日志政策
配置日志政策,確定資料庫的歸檔日志檔案、線上日志檔案、網絡日志、跟蹤檔案、警告日志記錄功能是否啟用并且有效實施
1. 配置歸檔模式,将資料庫正常關閉
SQL>SHUTDOWN IMMEDIATE
啟動到 MOUNT 模式
SQL>STARTUP MOUNT
SQL>ALTER DATABASE ARCHIVELOG
SQL>ALTER DATABASE OPEN
2.配置歸檔日志的名稱格式
ALTER SYSTEM SET log_archvie_format='%S_%T_%R.log' scope=spfile
3.配置歸檔位置
ALTER SYSTEM SET log_archive_dest_1='location=\oracle\oradata\archive1' scope=spfile
3、配置日志管理政策
配置日志管理政策、保證日志存放的地點的安全可靠
1. 配置多個歸檔位置,包括本地歸檔位置和遠端歸檔位置
ALTER SYSTEM SET log_archive_dest_2='location=\oracle\oradata\archive2' scope=spfile
ALTER SYSTEM SET log_archive_dest_3='service=standby' scope=spfile
配置遠端歸檔位置時, SERVICE 選項需要制定遠端資料庫的網絡服務名(在 tnsnames.Ora 文
件中配置)
漏洞加強
1、安裝系統安全更新檔,
對安全軟體掃描或手工檢查發現的系統漏洞進行修補
1.運作防病毒軟體(如 SEP)保護作業系統
2.下載下傳并安裝相應的安全更新檔
注意:更新安全更新檔可能對資料庫系統、應用系統造成影響;需要進行嚴格測試并做好備
份恢複措施後實施
圖檔和内容源自網絡分享,若有侵權,請聯系删除!
上海艾磊科技有限公司專門為企業提供IT咨詢,IT外包,系統內建,以及各類IT增值服務。其中增值服務包括OFFICE 365雲服務,鼎捷企業ERP管理軟體,雲備份,企業郵箱,無線覆寫,上網行為管理,VPN架設,網絡安全服務,INTERNET接入,裝置租賃, IP電話服務