首页主机资讯lsnrctl如何保障数据库安全

lsnrctl如何保障数据库安全

时间2026-01-22 05:48:03发布访客分类主机资讯浏览1216
导读:总体思路 Oracle 的监听进程 tnslsnr 是数据库对外接入的“门卫”,通过 lsnrctl 对其进行口令保护、权限收敛与运行限制,可显著降低被未授权停止、篡改或探测的风险。常见做法包括:设置监听口令并持久化、关闭本地操作系统认证、...

总体思路 Oracle 的监听进程 tnslsnr 是数据库对外接入的“门卫”,通过 lsnrctl 对其进行口令保护、权限收敛与运行限制,可显著降低被未授权停止、篡改或探测的风险。常见做法包括:设置监听口令并持久化、关闭本地操作系统认证、启用管理限制、限制可管理来源 IP、以及变更默认端口与最小权限运维。

关键配置与操作

  • 设置监听口令并持久化
    在 lsnrctl 中执行:
    1. set current_listener < 监听名>
    2. change_password(设置新口令)
    3. set password(在当前会话设置口令)
    4. save_config(保存;部分版本需再次 set password 后才能保存成功)
      成功后会在 listener.ora 生成加密项:PASSWORDS_< 监听名> = < 密文> 。注意:未设置口令时,存在被远程执行 lsnrctl stop 的风险。
  • 关闭本地操作系统认证
    listener.ora 增加:LOCAL_OS_AUTHENTICATION_< 监听名> = OFF,使监听管理必须提供口令;未关闭时,本机可能仍可免密执行管理命令(Security 显示为 “Password or Local OS Authentication”)。
  • 启用管理限制
    listener.ora 增加:ADMIN_RESTRICTIONS_< 监听名> = ON。启用后,监听运行时不允许通过 lsnrctl 执行管理命令(含 set),配置变更需手工编辑 listener.ora 并用 reload/stop+start 使生效,进一步收敛攻击面。
  • 限制来源 IP 访问监听管理
    sqlnet.ora 配置:
    • TCP.VALIDNODE_CHECKING = YES
    • 仅允许白名单:TCP.INVITED_NODES = (IP1, IP2)
    • 或仅拒绝黑名单:TCP.EXCLUDED_NODES = (IP1, IP2)
      二者并存时以 INVITED_NODES 优先。注意:若开启节点检查却未配置任何允许/拒绝地址,可能导致监听启动失败(TNS-00584)。
  • 变更默认监听端口
    将监听端口由 1521 改为非常用端口,并同步数据库参数 local_listener,可减少自动化扫描与爆破命中率。
  • 最小权限运维
    仅允许 oracle 操作系统账户执行 lsnrctl;限制监听管理端口与管理通道的网络可达性(防火墙/安全组);对监听日志与跟踪进行集中审计。

典型加固流程

  1. 本地登录数据库服务器,进入 lsnrctl:set current_listener < 监听名>
  2. 设置口令:change_password → set password → save_config(必要时再次 set password 再 save)
  3. 关闭本地 OS 认证:在 listener.ora 写入 LOCAL_OS_AUTHENTICATION_< 监听名> = OFF 并 reload/重启
  4. 启用管理限制:在 listener.ora 写入 ADMIN_RESTRICTIONS_< 监听名> = ON(变更通过手工编辑+reload 生效)
  5. 限制来源 IP:在 sqlnet.ora 开启 VALIDNODE_CHECKING,并按需配置 INVITED_NODES/EXCLUDED_NODES
  6. 变更端口与参数:修改 listener.ora 端口,SQL> alter system set local_listener=‘(address=(protocol=tcp)(host=< 主机> )(port=< 新端口> ))’
  7. 验证:从非白名单主机尝试 lsnrctl status/stop 应被拒绝;本机执行需先 set password;查看 Security 状态与 listener.log 确认生效。

注意事项

  • 口令与密文:口令保存在 listener.ora 的 PASSWORDS_< 监听名> 字段为密文;忘记口令时,删除该行并重启监听可将口令恢复为空(存在安全风险,务必先评估与备份)。
  • 节点检查陷阱:开启 VALIDNODE_CHECKING 而未配置任何允许/拒绝地址会导致监听启动失败(TNS-00584),务必至少配置 INVITED_NODES 或 EXCLUDED_NODES 之一。
  • 管理限制与可用性:启用 ADMIN_RESTRICTIONS 后,监听运行中无法用 lsnrctl set/reload 等管理命令,需通过编辑文件+reload/重启变更,变更窗口需纳入维护计划。
  • 本地免密风险:未关闭 LOCAL_OS_AUTHENTICATION 时,本机可能仍可免密管理监听;生产环境建议关闭并统一走口令+审计。
  • 远程停止风险:未设置监听口令时,攻击者可在远程执行 lsnrctl stop 导致业务中断,务必优先设置口令并限制来源 IP。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: lsnrctl如何保障数据库安全
本文地址: https://pptw.com/jishu/789617.html
C++程序在Linux如何进行异常处理 Linux系统中C++如何编译

游客 回复需填写必要信息