Ubuntu 上 Oracle 数据库安全加固清单
一 系统与账户基线
- 保持系统与软件为最新安全补丁:执行 sudo apt update && sudo apt upgrade,并启用 自动安全更新(如 unattended-upgrades),减少已知漏洞暴露窗口。
- 强化 OS 账户安全:安装并配置 libpam-pwquality,在 /etc/security/pwquality.conf 设置如 minlen=12、minclass=3,在 PAM 中启用 pam_pwquality.so retry=3,强制使用强口令。
- 最小化本地特权:仅将需要管理 Oracle 的用户加入 dba 等特权组,定期审计 /etc/group 与 /etc/passwd,清理无关或共享账号。
- 服务最小化:关闭不必要的端口与服务(如未使用的数据库监听端口、FTP、Telnet 等),降低攻击面。
- 日志与审计:集中收集与监控 /var/log/(如 syslog、auth.log),为 Oracle 告警与系统安全事件建立基线告警。
二 网络与监听器加固
- 边界与主机防火墙:使用 UFW 或 nftables 仅放行必要流量(如 SSH 22/TCP、数据库监听端口 1521/TCP 等),对管理口与业务口实施最小暴露。
- 监听器访问控制:在 $ORACLE_HOME/network/admin/sqlnet.ora 启用白名单校验
- 示例:
- tcp.validnode_checking = yes
- tcp.invited_nodes = (10.0.0.0/24, 192.168.1.10)
- 如需黑名单:tcp.excluded_nodes = (…)。变更后重启监听:lsnrctl stop/start。
- 监听器口令:使用 lsnrctl change_password 设置强口令并 save_config,防止未授权启停监听。
- 传输加密:启用 Oracle Net 网络加密(native encryption)以保护客户端与数据库之间的数据在网络传输中的机密性与完整性。
- 空闲连接保活:在 sqlnet.ora 设置 SQLNET.EXPIRE_TIME=10(单位:分钟),及时清理僵死会话。
三 数据库实例安全配置
- 数据字典保护:保持 O7_DICTIONARY_ACCESSIBILITY=FALSE(默认),防止拥有 ANY 系统权限的用户滥用于数据字典对象。
- 版本信息隐藏:设置 SEC_RETURN_SERVER_RELEASE_BANNER=FALSE,避免向客户端暴露详细版本号,降低针对性攻击风险。
- 超级管理员远程限制:将 REMOTE_LOGIN_PASSWORDFILE=NONE,并在 sqlnet.ora 设置 SQLNET.AUTHENTICATION_SERVICES=NONE,强制 SYSDBA 仅能本地、口令认证登录。
- 口令与账户策略:
- 修改默认口令,禁用或锁定默认/测试账户;
- 通过 PROFILE 实施策略:如 FAILED_LOGIN_ATTEMPTS=6、PASSWORD_LIFE_TIME=60、PASSWORD_REUSE_TIME=60、PASSWORD_REUSE_MAX=5、PASSWORD_LOCK_TIME=1/24、PASSWORD_GRACE_TIME=7,并配置 PASSWORD_VERIFY_FUNCTION 强制复杂度。
- 权限最小化与角色化:以 ROLE 管理对象权限,避免将 DBA 角色授予应用账户;撤销不必要的 ANY 权限与 PUBLIC 默认授予的危险权限(如 CREATE EXTERNAL JOB 等)。
- 连接数控制:结合硬件与业务设置 processes/sessions,如 alter system set processes=200 scope=spfile; 并重启实例生效。
四 审计与合规
- 启用与保留审计:将 audit_trail=DB(或 OS)以记录关键操作,定期导出与归档审计数据,保护审计记录完整性。
- 审计策略示例:对 SYS/SYSTEM 登录、DDL、敏感表访问、权限变更等设置细粒度审计;对失败登录与权限检查进行审计,便于入侵检测与取证。
- 定期核查:复核 DBA_USERS、DBA_SYS_PRIVS、DBA_ROLE_PRIVS、DBA_PROFILES 与 AUDIT_TRAIL 内容,清理过期/过度授权,验证审计规则有效性。
五 备份恢复与持续运维
- 备份策略:建立覆盖全库与归档日志的定期备份(如 RMAN 全备+增量、保留策略与异地/离线副本),并进行周期性恢复演练,验证 RPO/RTO 达标。
- 补丁与升级:为 Ubuntu 与 Oracle 应用最新安全补丁;Oracle 19c 建议保持 19.19 或更高 PSU/Release Update,及时修复已知漏洞。
- 监控与告警:对 alert.log、监听日志、系统安全日志与审计日志设置集中监控与阈值告警,异常登录、权限变更、失败登录激增等触发工单处置。