- 首页 >
- 问答 >
-
云计算 >
- Debian下sqlplus安全性设置
Debian下sqlplus安全性设置
小樊
32
2025-12-25 04:52:13
Debian下 sqlplus 安全性设置
一 系统层安全基线
- 为运行 Oracle 的系统账号(如 oracle)设置最小权限与专属组,严格目录权限:数据目录(如 /u01)属主 oracle:oinstall,权限 775;仅 oracle 可写,避免其他系统账号读写数据库文件。
- 启用 UFW 仅放行必要端口(Oracle 监听默认 1521/TCP):sudo ufw allow 1521/tcp;sudo ufw enable。生产环境建议仅对受控网段开放。
- 强化系统口令策略(PAM):安装 libpam-pwquality,在 /etc/pam.d/common-password 配置如:password requisite pam_pwquality.so retry=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 difok=3;并在 /etc/login.defs 设置 PASS_MAX_DAYS(如 90)、PASS_WARN_AGE(如 7),定期更换系统口令。
二 客户端登录与凭据保护
- 避免将口令暴露在命令行或历史记录中:不要使用 sqlplus user/pass 形式;优先采用 sqlplus /nolog 登录后再执行 conn 进行认证,这样在 ps 与 history 中均不可见口令明文。
- 脚本交互式输入口令:运行时提示输入并读入变量,避免在脚本中硬编码密码;必要时从受控文件读取,文件权限设为仅属主可读(如 chmod 600)。
- 静默执行与日志控制:在脚本中使用 sqlplus -S /nolog 配合 here-document 执行语句,关闭回显与反馈,输出定向到受控日志,减少信息泄露面。
三 数据库账户与权限最小化
- 应用与维护使用专用数据库账号,遵循最小权限原则;避免使用 DBA 角色进行日常连接。示例:仅授予登录与会话权限,必要时再按需授予对象级权限。
- 常见授权示例:创建用户后,至少授予 CREATE SESSION 才能正常登录;若缺少该权限会出现 “user … lacks CREATE SESSION privilege; logon denied”。示例:CREATE USER app IDENTIFIED BY StrongPass!23; GRANT CREATE SESSION TO app;(对象权限按业务最小化追加)。
四 网络传输与监听安全
- 仅开放必要端口与来源网段:在 /etc/ufw/user.rules 或防火墙策略中限制 1521/TCP 的入站来源,避免对全网开放;变更后用 ufw status 复核。
- 监听与远程连接加固:在 listener.ora 中仅监听必要地址(例如指定主机名或内网地址而非 0.0.0.0),禁用不必要的协议与服务,减少攻击面;变更后用 lsnrctl status/stop/start 使配置生效。
五 审计与运维安全
- 启用数据库会话审计以留存关键登录与关键操作证据:AUDIT SESSION; 定期查看告警与跟踪日志(如 $ORACLE_BASE/diag/rdbms///trace/alert_.log),结合系统日志进行关联分析。
- 持续更新与补丁:保持 Debian 与 Oracle 组件的安全补丁为最新;定期复核用户权限、监听配置与防火墙规则,清理不再使用的账号与权限。