Debian系统中Oracle数据库的安全保障需从系统基础配置、Oracle实例安全、网络访问控制、监控审计及持续维护等多维度实施,以下是具体措施:
定期运行sudo apt update && sudo apt upgrade -y命令,确保Debian系统及Oracle数据库软件为最新版本,及时修复已知安全漏洞。
创建专用Oracle用户组(如oinstall、dba、backupdba),并为用户分配最小必要权限。例如,Oracle软件安装目录归属oinstall组,数据库管理员(DBA)归属dba组,避免使用root用户直接操作Oracle。
编辑/etc/security/limits.d/30-oracle.conf文件,限制Oracle用户的资源使用,防止资源耗尽攻击。示例配置:
Oracle soft nofile 1024
Oracle hard nofile 65536
Oracle soft nproc 16384
Oracle hard nproc 16384
Oracle soft stack 10240
Oracle hard stack 32768
Oracle hard memlock 134217728
Oracle soft memlock 134217728
修改/etc/sysctl.d/98-oracle.conf文件,调整内核参数提升系统安全性和性能。关键参数包括:
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.ipv4.conf.all.rp_filter = 2
net.ipv4.ip_local_port_range = 9000 65500
运行sysctl --system使配置生效。
为Oracle软件及数据目录设置合理权限,确保只有Oracle用户及所属组可访问。例如:
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 /u01/oradata
chown -R oracle:oinstall /u01
chmod -R 775 /u01
为Oracle数据库用户设置强密码(包含大小写字母、数字、特殊字符),并定期更换。避免使用默认密码(如change_on_install),通过ALTER USER命令强制密码复杂度:
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function_11G;
ALTER USER scott IDENTIFIED BY StrongPassword123 PROFILE DEFAULT;
为应用程序创建专用数据库用户,仅授予完成业务所需的最低权限(如SELECT、INSERT),避免授予DBA等高权限角色。例如:
CREATE USER app_user IDENTIFIED BY app_password;
GRANT CONNECT, RESOURCE TO app_user;
REVOKE DBA FROM app_user;
使用ufw(Uncomplicated Firewall)限制对Oracle监听端口的访问,仅允许受信任的IP地址或网络段连接。例如,允许192.168.1.0/24网络访问1521端口:
sudo ufw allow from 192.168.1.0/24 to any port 1521
sudo ufw enable
编辑$ORACLE_HOME/network/admin/listener.ora文件,实施以下安全措施:
TCP.VALIDNODE_CHECKING参数仅允许指定主机连接监听器;SECURITY_LISTENER.ENCRYPTION_PASSWORD);SSL_VERSION=1.2、SSL_CIPHER_SUITES);LOG_LEVEL_LISTENER=16、TRACE_FILE_LISTENER=listener_trace.log)。启用Oracle审计功能,监控关键操作(如登录、数据修改):
AUDIT SESSION;
AUDIT SELECT TABLE, INSERT TABLE, UPDATE TABLE, DELETE TABLE BY ACCESS;
定期检查Oracle告警日志($ORACLE_BASE/diag/rdbms/<SID>/<SID>/trace/alert_<SID>.log)及系统日志(/var/log/syslog、/var/log/auth.log),识别异常行为。
使用Fail2ban工具监控登录失败尝试,自动封禁恶意IP地址。配置/etc/fail2ban/jail.local文件,添加Oracle监听端口(1521)的防护规则:
[oracle]
enabled = true
port = 1521
filter = oracle
logpath = /u01/app/oracle/diag/tnslsnr/<hostname>/trace/listener.log
maxretry = 3
bantime = 3600
RMAN(Recovery Manager)工具定期备份Oracle数据库,存储至异地或云存储,确保数据可恢复;OpenVAS、Nessus等工具定期扫描系统和Oracle实例,发现并修复安全漏洞;