sqlplus在centos中的安全性问题
导读:CentOS 上使用 SQL*Plus 的主要安全风险与加固要点 一 常见风险 在命令行中直接使用“用户名/密码”会被 ps 等进程列表工具直接暴露,存在凭据泄露风险。应避免在命令行明文书写密码。 使用 system 等默认或高权限账户进...
CentOS 上使用 SQL*Plus 的主要安全风险与加固要点
一 常见风险
- 在命令行中直接使用“用户名/密码”会被 ps 等进程列表工具直接暴露,存在凭据泄露风险。应避免在命令行明文书写密码。
- 使用 system 等默认或高权限账户进行日常操作,一旦凭据泄露影响面大;应创建专用低权限账户并遵循最小权限原则。
- 监听端口(默认 1521/TCP)对公网开放且无来源限制,容易被暴力尝试或嗅探;应启用防火墙白名单与访问控制。
- 客户端与服务器之间多为明文传输,存在数据被窃听风险;应启用 SSL/TLS 加密通道。
- 登录与关键操作缺乏审计追踪,发生入侵或误操作难以定位;应开启数据库审计并监控登录行为。
二 加固清单
- 凭据与账户
- 创建专用业务用户并仅授予必要权限,例如仅授予 CREATE SESSION 与所需的 SELECT/INSERT 等,避免授予 DROP/ALTER 等高危权限;管理员权限通过角色分离与审批使用。
- 禁用或限制默认账户(如 scott),对 system 等管理账户实施更严格的管控与审计。
- 连接与输入
- 避免使用“sqlplus user/pass@…”形式;优先使用 sqlplus /nolog 后交互输入,或在脚本中通过安全方式读取凭据,防止出现在进程列表与命令历史中。
- 系统与 PAM
- 启用密码策略:最大有效期 90 天、最小间隔 7 天、过期前 10 天提醒;复杂度至少 12 位,包含大小写字母、数字与特殊字符,并禁止复用最近 5 次密码。
- 登录失败锁定:连续失败 5 次锁定 300 秒,降低暴力破解成功率。
- 网络安全
- 通过 firewalld 仅允许受信任网段访问 1521/TCP,对不必要的来源一律拒绝。
- 配置 SQL*Net/SSL 加密(如 WALLET_LOCATION、SSL_VERSION=1.2 等),保护传输链路安全。
- 审计与监控
- 开启数据库审计(如审计登录与关键 DML/DDL),并定期核查 DBA_AUDIT_TRAIL;结合系统日志(如 /var/log/secure)监测异常登录与失败重试。
三 关键配置示例
- 密码策略(PAM,适用于新创建与现有用户)
- 新用户默认策略(/etc/login.defs):
- PASS_MAX_DAYS 90
- PASS_MIN_DAYS 7
- PASS_WARN_AGE 10
- 现有用户调整:chage -M 90 -m 7 -W 10 username
- 复杂度与历史(/etc/pam.d/system-auth 与 /etc/pam.d/password-auth):
- 在 pam_unix.so 行尾追加:remember=5
- 在 pam_pwquality.so 行尾追加:minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
- 新用户默认策略(/etc/login.defs):
- 登录失败锁定(/etc/pam.d/system-auth 与 /etc/pam.d/password-auth)
- auth required pam_tally2.so deny=5 onerr=fail unlock_time=300
- 查看/解锁:pam_tally2 -u username;pam_tally2 -r -u username
- 防火墙白名单(firewalld)
- firewall-cmd --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port protocol=“tcp” port=“1521” accept’ --permanent
- firewall-cmd --reload
- SQL*Plus 安全连接与登录
- 交互式登录:sqlplus /nolog → CONNECT username/password@service
- SSL/TLS(sqlnet.ora 示例):
- SQLNET.AUTHENTICATION_SERVICES=(NTS)
- SSL_CLIENT_AUTHENTICATION=TRUE
- SSL_VERSION=1.2
- WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/wallet)))
- 审计示例
- AUDIT SELECT TABLE BY ACCESS;
- 查询:SELECT * FROM DBA_AUDIT_TRAIL WHERE ACTION_NAME=‘SELECT’ ORDER BY TIMESTAMP DESC;
四 日常运维与验证
- 例行检查
- 核查账户锁定与策略:pam_tally2 -u username;chage -l username
- 核查防火墙规则与端口开放情况
- 核查 SQL*Plus 相关配置与脚本文件权限,避免凭据落盘泄露
- 监控与告警
- 定期检索 /var/log/secure 与 DBA_AUDIT_TRAIL,关注失败登录、异常来源 IP、权限变更与敏感数据访问
- 连接习惯
- 统一使用 /nolog + CONNECT 的方式,禁止在脚本或命令行中明文书写密码。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: sqlplus在centos中的安全性问题
本文地址: https://pptw.com/jishu/776805.html
