1. 系统准备与更新
在Debian上部署Oracle数据库前,需确保系统处于最新状态,以修复已知安全漏洞。执行以下命令更新系统:
sudo apt update && sudo apt upgrade -y
安装Oracle所需的依赖包(如bc、binutils、libaio1等),避免因依赖缺失导致安装或运行异常。
2. 用户与权限管理
oinstall(安装组)、dba(数据库管理员组)和oracle(运行用户):sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba -m -s /bin/bash oracle
sudo passwd oracle # 设置强密码
/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
/home/oracle/.bash_profile,设置Oracle必要的环境变量:export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 # 根据实际安装路径调整
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID=orcl # 根据实际SID调整
执行source /home/oracle/.bash_profile使配置生效。3. 网络与防火墙配置
$ORACLE_HOME/network/admin/listener.ora文件,设置监听器地址和端口(默认1521):LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521))))
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = orcl)(ORACLE_HOME = $ORACLE_HOME)))
启动监听器并设置为开机自启:lsnrctl start
lsnrctl add # 添加监听器到开机自启
ufw(推荐)或iptables限制对Oracle端口的访问。以ufw为例:sudo ufw allow 1521/tcp # 允许1521端口TCP流量
sudo ufw enable # 启用ufw
sudo ufw reload # 重载规则
若使用iptables,需添加规则并保存:sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
sudo netfilter-persistent save # 保存规则(需安装iptables-persistent)
建议仅允许可信IP地址访问Oracle端口,进一步提升安全性。4. Oracle特定安全配置
sysdba身份登录SQL*Plus,执行:SQL> audit_trail = ON; -- 开启审计
SQL> audit create session by access; -- 审计用户连接
SQL> audit select table, insert table, update table, delete table by access; # 审计表操作
审计日志默认存储在$ORACLE_BASE/diag/rdbms/<SID>/<SID>/trace/alert_<SID>.log中,需定期检查。$ORACLE_HOME/network/admin/sqlnet.ora文件,添加:SQLNET.AUTHENTICATION_SERVICES = (TCPS)
SSL_CLIENT_AUTHENTICATION = TRUE
SSL_VERSION = 1.2
PROFILE功能设置密码复杂度,如最小长度、有效期、历史密码检查。创建profile并分配给用户:SQL> CREATE PROFILE strong_pwd LIMIT
PASSWORD_LENGTH 8
PASSWORD_VERIFY_FUNCTION verify_function_11G
PASSWORD_REUSE_MAX 5
PASSWORD_REUSE_TIME 30
PASSWORD_LIFE_TIME 90;
SQL> ALTER USER myuser PROFILE strong_pwd;
需先创建verify_function_11G函数(Oracle自带,位于$ORACLE_HOME/rdbms/admin目录)。5. 日志与监控
Logwatch或Fail2ban监控系统日志,及时发现暴力破解、未授权访问等异常。安装Fail2ban:sudo apt install fail2ban
配置/etc/fail2ban/jail.local,添加Oracle监听器端口监控:[oracle]
enabled = true
port = 1521
filter = oracle
logpath = /var/log/syslog
maxretry = 3
bantime = 3600
alert_<SID>.log(警报日志)和trace目录下的跟踪文件,分析数据库错误、连接异常等信息。6. 补丁与备份管理
sudo apt update && sudo apt upgrade -y,安装Debian系统和依赖包的安全补丁。RMAN> BACKUP DATABASE TO DEVICE TYPE DISK FORMAT '/backup/orcl_%U.bak';
RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT; # 备份归档日志
将备份文件存储在异地或安全存储介质中,确保数据可恢复。7. 其他安全加固
systemctl命令禁用服务:sudo systemctl stop ftp
sudo systemctl disable ftp
/etc/default/grub文件,添加内核参数:GRUB_CMDLINE_LINUX="transparent_hugepage=never numa=off"
更新GRUB并重启系统:sudo update-grub
sudo reboot
/etc/avahi/avahi-daemon.conf文件,设置:disable-user-service-publishing=yes
重启Avahi服务:sudo systemctl restart avahi-daemon
```。