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 # 最大堆栈大小(软限制)
/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
定期归档和清理旧日志,避免日志文件占用过多磁盘空间。