1. 系統準備與環境更新
在開始配置前,確保Debian系統處于最新狀態,以修復已知安全漏洞。執行以下命令更新系統:
sudo apt update && sudo apt upgrade -y
安裝Oracle數據庫所需的依賴包(如libaio1
、libssl-dev
等),具體包名參考Oracle官方文檔對應版本的“預安裝要求”。
2. 用戶與權限管理
oinstall
、dba
、backupdba
),并添加Oracle運行用戶(如oracle
),避免使用root賬戶管理數據庫:sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba -m -s /bin/bash oracle
sudo passwd oracle # 設置強密碼
oracle
用戶使用root權限,所有數據庫管理操作通過專用用戶執行。3. 安全限制設置(資源與內核參數)
/etc/security/limits.d/30-oracle.conf
文件,設置Oracle用戶的資源上限(防止資源耗盡攻擊),示例如下:oracle soft nproc 2047 # 最大進程數(軟限制)
oracle hard nproc 16384 # 最大進程數(硬限制)
oracle soft nofile 1024 # 最大文件描述符(軟限制)
oracle hard nofile 65536 # 最大文件描述符(硬限制)
oracle soft stack 10240 # 最大堆棧大?。ㄜ浵拗疲?/span>
/etc/sysctl.d/98-oracle.conf
文件,調整內核參數以提升安全性和性能,示例如下:fs.file-max = 6815744 # 系統最大文件描述符數
net.ipv4.ip_local_port_range = 9000 65500 # 本地端口范圍
kernel.sem = 250 32000 100 128 # 信號量參數
應用內核參數:sudo sysctl -p
。4. 網絡與防火墻配置
ufw
(推薦)或iptables
限制對Oracle監聽端口的訪問(默認1521),僅允許可信IP地址連接:sudo ufw allow from trusted_ip to any port 1521 proto tcp # 替換trusted_ip為實際IP
sudo ufw enable # 啟用ufw
ssh-keygen -t rsa -b 4096 # 在本地生成密鑰對
ssh-copy-id oracle@server_ip # 將公鑰復制到Oracle服務器
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config # 禁用root登錄
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config # 禁用密碼認證
sudo systemctl restart sshd # 重啟SSH服務
```。
5. Oracle數據庫自身安全配置
oracle
用戶的~/.bash_profile
文件,配置Oracle環境變量(如ORACLE_HOME
、ORACLE_SID
、PATH
):export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 # 替換為實際安裝路徑
export ORACLE_SID=orcl # 替換為實際SID
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
source ~/.bash_profile # 使配置生效
sqlnet.ora
文件:SQLNET.AUTHENTICATION_SERVICES=(TCPS)
SSL_CLIENT_AUTHENTICATION=TRUE
SSL_VERSION=1.2
同時,為客戶端配置tnsnames.ora
以使用加密連接。sqlnet.ora
文件:auditing ON
或通過SQL命令設置:AUDIT ALL BY ACCESS;
。6. 定期更新與補丁管理
sudo apt update && sudo apt upgrade
,確保Debian系統和依賴包為最新版本。7. 備份與恢復策略
制定定期備份計劃,使用RMAN(Recovery Manager)工具備份數據庫,存儲到安全的異地位置(如NAS、云存儲)。示例如下:
rman target /
RUN {
ALLOCATE CHANNEL c1 TYPE DISK;
BACKUP DATABASE FORMAT '/backup/oracle/%U.bak';
BACKUP ARCHIVELOG ALL DELETE INPUT FORMAT '/backup/oracle/arch_%U.bak';
RELEASE CHANNEL c1;
}
測試備份文件的恢復流程,確保在數據丟失或損壞時能快速恢復。
8. 監控與日志審計
Logwatch
、Fail2ban
等工具監控系統日志(如/var/log/auth.log
、Oracle的alert.log
),及時發現異常登錄、未授權訪問等安全事件。sudo chmod 640 /var/log/oracle/*.log
sudo chown oracle:dba /var/log/oracle/*.log
定期歸檔和清理舊日志,避免日志文件占用過多磁盤空間。