游乐游手机版
首页/系统平台/文章详情

如何保障Ubuntu系统中Oracle数据库安全稳定运行

时间:2026-08-20 19:10
Ubuntu下Oracle安全运行清单一 系统与服务加固保持 Ubuntu 系统与 Oracle 数据库持续更新:执行sudo apt update && sudo apt upgrade -y;安装并启用自动安全更新(编辑** etc apt apt conf d 50unattended-upg

Ubuntu下Oracle安全运行清单

怎样确保UbuntuOracle安全运行

一 系统与服务加固

  • 保持 Ubuntu 系统与 Oracle 数据库持续更新:执行sudo apt update && sudo apt upgrade -y;安装并启用自动安全更新(编辑**/etc/apt/apt.conf.d/50unattended-upgrades**,确保包含**“${distro_id}:${distro_codename}-security”**),同时按维护计划及时应用 Oracle 官方 CPU/PSU 安全补丁。
  • 专用账户与权限控制:创建oracle用户并加入oinstall、dba组;设置高强度密码(长度≥12位,包含大小写字母、数字和特殊字符);禁用root远程登录(/etc/ssh/sshd_config:PermitRootLogin no),降低服务器被暴力破解的风险。
  • 资源与登录限制:在**/etc/security/limits.conf中为 oracle 设置资源上限(如nproc、nofile**),并在**/etc/pam.d/login启用 PAM limits;为 SSH 配置密钥认证、关闭密码登录、修改默认端口,并设置空闲超时(如ClientAliveInterval 300**),提升 Ubuntu 服务器登录安全性。
  • 文件与目录权限:将**$ORACLE_BASE、$ORACLE_HOME、数据目录的属主设为oracle:oinstall**,权限设置为750;敏感网络配置文件(如listener.ora、sqlnet.ora)建议设为640,仅允许 oracle 相关账户访问。
  • 服务最小化原则:仅开放必要端口(如22/SSH、1521/TCP);禁用未使用的监听器和数据库服务;监听器仅绑定内网地址;结合**/etc/oratab**与 systemd 统一管理 Oracle 实例启停,减少暴露面。

二 网络与传输安全

  • 防火墙与网络隔离:使用 UFW 仅允许受信任来源访问1521/TCP(如有需要可额外开放2484/TCP用于 SSL),并将 Oracle 数据库部署在私有子网/VPC中,避免公网直接访问数据库端口。
  • 监听器加固:为 LISTENER 设置强口令并保存配置(lsnrctl:change_passwordsa ve_config),防止未授权用户执行监听器启停、修改配置或恶意篡改。
  • 源地址白名单:在 sqlnet.ora 中启用客户端白名单校验(如tcp.validnode_checking=yes;tcp.invited_nodes=(10.0.1.10,10.0.1.20,127.0.0.1)),限制只有可信主机可以连接 Oracle 数据库。
  • 传输加密:优先启用 SSL/TLS(配置 listener.ora/sqlnet.ora,例如将监听端口设置为2484/TCP并启用 TCPS);如果暂时无法启用 SSL,可先强制启用 Oracle 网络层加密与完整性校验(如SQLNET.ENCRYPTION=REQUIRED;SQLNET.CRYPTO_CHECKSUM=REQUIRED)。
  • 会话保活:设置 SQLNET.EXPIRE_TIME=10(单位:分钟),及时清理僵死连接,减少无效会话积累,并降低会话劫持与资源占用风险。

三、数据库账户权限管理

  • 默认账户治理:及时修改 SYS/SYSTEM 默认口令;锁定或删除示例、演示及无业务用途的账户;如果未使用,可禁用 DBSNMP/SYSMAN/MGMT_VIEW 等 OEM 相关账户,减少攻击入口。
  • 最小权限与角色管理:应用账户仅授予完成业务所需的对象权限或系统权限,避免直接授予 DBA;通过自定义角色统一封装权限,并定期复查权限分配是否合理。
  • 强密码与锁定策略:调整默认 PROFILE,设置口令长度≥12、有效期90天、失败锁定1天、密码重用限制(如PASSWORD_REUSE_MAX 5),并启用复杂度校验函数(如 verify_function_11G),满足 Oracle 数据库安全基线要求。
  • 撤销 PUBLIC 危险包执行权限:对 UTL_FILE、UTL_TCP、UTL_SMTP、UTL_HTTP、DBMS_RANDOM 等包撤销 PUBLIC 的 EXECUTE 权限,降低任意代码调用、外部通信与数据外泄风险。
  • 数据字典保护:设置 O7_DICTIONARY_ACCESSIBILITY=FALSE,禁止非 SYSDBA 用户直接访问敏感数据字典和元数据,提升 Oracle 核心数据安全性。

四 审计与监控

  • 启用数据库审计:将 AUDIT_TRAIL 设置为 DB/EXTENDED,审计关键操作,如登录/登出、DDL、权限变更以及敏感表访问;审计记录位于 $ORACLE_BASE/admin/$ORACLE_SID/adump,建议定期查询和分析(如 DBA_AUDIT_TRAIL),便于安全审计与合规检查。
  • 登录审计与告警:创建 AFTER LOGON 触发器,记录用户名、IP、时间等核心字段,并结合日志平台或告警系统进行异常登录识别、暴力破解检测和实时通知。
  • 主机与访问监控:启用 AppArmor 限制 oracle 进程访问范围(如 sudo aa-status 查看、按需配置并重新加载);使用 fail2ban 自动封禁频繁失败登录的来源 IP;定期检查 /var/log/syslog、/var/log/auth.log 以及 Oracle 告警日志。
  • 备份与恢复演练:制定 RMAN(全备+增量)与 Data Pump 备份策略,并定期验证恢复流程,确保在遭遇攻击、误操作或系统故障时可以快速恢复 Oracle 数据库业务。

五 关键配置示例

  • 白名单与空闲保活(sqlnet.ora)
tcp.validnode_checking=yes
tcp.invited_nodes=(10.0.1.10,10.0.1.20,127.0.0.1)
SQLNET.EXPIRE_TIME=10
  • 传输加密(sqlnet.ora,未启用 SSL/TLS 前可作为过渡)
SQLNET.ENCRYPTION=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256)
SQLNET.CRYPTO_CHECKSUM=REQUIRED
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)
  • 登录审计触发器(登录即写库表)
CREATE TABLE LOGON_TABLE(
logon_user VARCHAR2(255),
logon_ip VARCHAR2(255),
logon_time DATE
);
CREATE OR REPLACE TRIGGER TRI_LOGON
AFTER LOGON ON DATABASE
BEGIN
INSERT INTO LOGON_TABLE VALUES(
SYS_CONTEXT('USERENV','SESSION_USER'),
SYS_CONTEXT('USERENV','IP_ADDRESS'),
SYSDATE
);
END;
/
  • 密码与锁定策略(Profile)
@$ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql
ALTER PROFILE DEFAULT LIMIT
PASSWORD_VERIFY_FUNCTION verify_function_11G
FAILED_LOGIN_ATTEMPTS 6
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 90
PASSWORD_REUSE_MAX 5
PASSWORD_LIFE_TIME 90;
  • 撤销 PUBLIC 危险包
REVOKE EXECUTE ON UTL_FILE  FROM PUBLIC;
REVOKE EXECUTE ON UTL_TCP FROM PUBLIC;
REVOKE EXECUTE ON UTL_SMTP FROM PUBLIC;
REVOKE EXECUTE ON UTL_HTTP FROM PUBLIC;
REVOKE EXECUTE ON DBMS_RANDOM FROM PUBLIC;
  • 监听器口令(lsnrctl)
lsnrctl
LSNRCTL> change_password
Old password: <当前>
New password: <新>
Reenter new password: <新>
LSNRCTL> sa ve_config
  • 防火墙放行示例(UFW)
sudo ufw allow 22/tcp
sudo ufw allow 1521/tcp
sudo ufw enable
来源:https://www.yisu.com/ask/1549782.html
上一篇Ubuntu系统下MongoDB监控方法与性能监控实践 下一篇提升Ubuntu系统下Oracle数据库查询速度的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。