首页 >
问答 >
云计算 >
centos oracle安全加固策略
centos oracle安全加固策略
小樊
50
2026-01-02 03:01:28
CentOS 上的 Oracle 安全加固策略
一 操作系统与网络基线
补丁与最小化安装:保持 CentOS 与 Oracle 补丁为最新;仅启用必需服务,移除或禁用无用软件包与端口,降低攻击面。
防火墙精细化:使用 firewalld 仅放行必要流量(如 SSH 22/TCP 、数据库 1521/TCP ),并按需限制来源网段。
SSH 安全:优先使用 密钥登录 ,禁用 root 远程登录,限制并发会话与空闲超时,启用更强的加密与 MAC 算法。
系统口令策略:安装并配置 libpwquality ,设置最小长度、字符类别与重试次数,强制系统账户使用强口令。
示例(firewalld 放行 1521/TCP):
sudo firewall-cmd --permanent --add-port=1521/tcp && sudo firewall-cmd --reload
上述措施有助于在操作系统层面减少暴露面并提升认证安全。
二 Oracle 账号与权限最小化
强口令与默认账户治理:修改 SYS/SYSTEM 等管理员口令;锁定或删除 默认/测试/过期 账户;避免共享账号。
最小权限原则:应用账户仅授予所需权限,避免授予 DBA 角色;按需通过 ROLE 管理对象权限,定期审计 dba_sys_privs / dba_tab_privs / dba_role_privs 。
撤销 PUBLIC 危险包执行权限:如 UTL_FILE、UTL_HTTP、UTL_TCP、UTL_SMTP、DBMS_RANDOM 等,降低从数据库发起网络或文件操作的风险。
数据字典保护:设置 O7_DICTIONARY_ACCESSIBILITY = FALSE ,仅允许 SYSDBA 访问数据字典基表,防止普通用户遍历系统表。
示例(撤销 PUBLIC 对 UTL_FILE 的执行权限):
REVOKE EXECUTE ON sys.utl_file FROM PUBLIC;
以上措施可显著降低权限滥用与提权风险。
三 口令策略与登录安全
启用复杂度校验:执行 $ORACLE_HOME/rdbms/admin/utlpwdmg.sql ,使用 VERIFY_FUNCTION_11G 或等价函数强制口令长度、字符类别与历史限制。
统一 Profile 策略:建议对关键参数设定阈值(示例值可按需收紧):
FAILED_LOGIN_ATTEMPTS:6 次失败后锁定
PASSWORD_LIFE_TIME:90 天
PASSWORD_REUSE_MAX:5 次变更后方可复用
PASSWORD_LOCK_TIME:1/24 天(即 1 小时 )
PASSWORD_GRACE_TIME:7 天
PASSWORD_VERIFY_FUNCTION:VERIFY_FUNCTION_11G
登录审计与告警:启用登录触发器记录 用户名/时间 ,便于审计与溯源(示例表与触发器见下)。
空闲连接保活与半开连接检测:在 sqlnet.ora 设置 SQLNET.EXPIRE_TIME=15 (单位:分钟),定期探测死连接。
示例(创建登录日志表与触发器):
CREATE TABLE logon_table(session_user VARCHAR2(256), create_time DATE);
CREATE OR REPLACE TRIGGER tri_logon AFTER LOGON ON DATABASE
BEGIN INSERT INTO logon_table VALUES(SYS_CONTEXT(‘USERENV’,‘SESSION_USER’), SYSDATE); END; /
上述策略可提升口令强度、降低暴力破解成功率并增强可审计性。
四 网络与监听安全
白名单访问控制:在 sqlnet.ora 启用 tcp.validnode_checking=yes ,通过 tcp.invited_nodes=(IP1,IP2…) 仅允许受信主机连接数据库。
监听安全:为 LISTENER 设置管理口令(LSNRCTL> change_password / save_config),并视版本与需求关闭 LOCAL_OS_AUTHENTICATION_LISTENER 以避免本地 OS 认证绕过;注意 11g 起即使设置监听密码,恶意者仍可能通过本地 OS 认证停止监听,需配合 OS 权限与流程管控。
端口与远程管理:如业务允许,修改默认 1521 端口并限制监听的远程管理通道;变更后同步更新客户端与本地解析配置并回归测试。
示例(sqlnet.ora 白名单与保活):
tcp.validnode_checking=yes
tcp.invited_nodes=(192.168.1.10,192.168.1.20)
SQLNET.EXPIRE_TIME=15
上述措施可有效缩小攻击面并提升监听与网络层的可控性。
五 审计、加密与运行环境
审计策略:启用 审计 以覆盖 SYSDBA 与管理类操作,建议设置 audit_trail=os 或 db 并开启 audit_sys_operations=true ;审计会产生额外 I/O 与存储 开销,需评估与分盘。
传输加密:在 sqlnet.ora 配置 SQLNET.ENCRYPTION (客户端/服务器)与合适算法,启用 SQLNET.CRYPTO_CHECKSUM 校验,防止明文传输与篡改。
归档与备份:启用 ARCHIVELOG 模式,配置本地与/或远程 LOG_ARCHIVE_DEST_n ,定期验证备份可用性与恢复演练。
文件权限与目录安全:限制 $ORACLE_BASE/oradata 、$ORACLE_HOME/bin 等目录与文件的组/其他写权限,仅保留 属主 与 root 必要权限;清理无用对象与测试数据。
变更与回退:所有加固项先在测试环境验证,变更窗口内做好 全量备份 与 回退预案 ,变更后复核监听、连接与应用可用性。
上述措施覆盖审计取证、传输机密性与完整性、可恢复性与运行态文件安全,建议在合规框架内持续运营与优化。