一、操作系統層安全加固
oinstall用于安裝、dba用于數據庫管理)和用戶(如oracle),并添加至對應組;清理DBA組中多余操作系統用戶,僅保留必要賬戶。/etc、/root)的訪問權限。$ORACLE_BASE/oradata、日志目錄$ORACLE_HOME/network/log)設置750權限,所有者為oracle:oinstall;對核心配置文件(如listener.ora、sqlnet.ora)設置640權限。chattr +i /etc/passwd),防止關鍵系統文件被非法篡改。/etc/sysctl.conf調整內核參數,提升系統抗攻擊能力:fs.file-max=6815744(最大文件描述符數)、kernel.shmmax=2147483648(共享內存最大大?。?、net.ipv4.ip_local_port_range=9000-65500(本地端口范圍)、net.ipv4.tcp_syncookies=1(防止SYN Flood攻擊);執行sysctl -p使配置生效。telnet、ftp、sendmail),減少攻擊面;僅開啟Oracle必要服務(如OracleServiceORCL、OracleOraDB19Home1TNSListener)。iptables/firewalld)僅開放Oracle監聽端口(默認1521)和SSH端口(建議修改為10000+),限制非必需網絡訪問。二、Oracle數據庫層安全加固
PROFILE(如DEFAULT),啟用密碼復雜度檢查:設置PASSWORD_VERIFY_FUNCTION=verify_function,要求密碼長度≥6位,包含數字、小寫字母、大寫字母、特殊字符中的至少2類;設置密碼有效期≤90天(PASSWORD_LIFE_TIME=90)、失敗登錄嘗試次數≤5次(FAILED_LOGIN_ATTEMPTS=5)。REMOTE_LOGIN_PASSWORDFILE=NONE;限制DBA組成員數量,僅保留Oracle安裝用戶。ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE SCOPE=SPFILE;重啟數據庫使配置生效。ALTER SYSTEM SET AUDIT_TRAIL='DB,EXTENDED' SCOPE=SPFILE;重啟數據庫后,可通過DBA_AUDIT_TRAIL視圖查詢審計日志。EMPLOYEE)的關鍵操作(如SELECT、UPDATE)記錄詳細信息,執行:BEGIN
DBMS_FGA.ADD_POLICY(
object_schema => 'HR',
object_name => 'EMPLOYEE',
policy_name => 'EMP_SALARY_AUDIT',
audit_condition => NULL,
audit_column => 'SALARY',
enable => TRUE,
statement_types => 'SELECT,UPDATE'
);
END;
$ORACLE_HOME/network/admin/sqlnet.ora文件,設置:SQLNET.ENCRYPTION_SERVER=REQUIRED(服務器端強制加密)、SQLNET.ENCRYPTION_TYPES_SERVER=(AES256)(加密算法)、SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED(完整性校驗);重啟監聽器使配置生效。lsnrctl→set current_listener LISTENER→change_password→輸入新舊密碼;保存配置(save_config)。$ORACLE_HOME/network/admin/sqlnet.ora文件,設置:TCP.VALIDNODE_CHECKING=YES(啟用IP檢查)、TCP.INVITED_NODES=('192.168.1.10','10.0.0.5')(允許訪問的IP列表);重啟監聽器。ALTER SYSTEM SET PROCESSES=200 SCOPE=SPFILE;重啟數據庫。/etc/audit/audit.rules添加規則:-w /u01/app/oracle/product/19.0.0/dbhome_1/bin/oracle -p x -k oracle_exec(監控Oracle啟動)、-w $ORACLE_HOME/diag/rdbms/orcl/trace -p rwxa -k oracle_trace(監控診斷日志)。三、持續維護與監控
CONFIGURE ENCRYPTION FOR DATABASE ON);將備份介質離線存儲(如磁帶、異地存儲),定期測試備份恢復流程。