首页主机资讯如何用lsnrctl进行安全配置

如何用lsnrctl进行安全配置

时间2025-11-19 23:15:04发布访客分类主机资讯浏览442
导读:用 lsnrctl 进行 Oracle 监听器安全配置 一 基础防护 监听器口令与运行限制 设置或修改监听器口令,防止未授权停止或保存配置:在 lsnrctl 提示符下执行 change_password,随后用 set password...

用 lsnrctl 进行 Oracle 监听器安全配置

一 基础防护 监听器口令与运行限制

  • 设置或修改监听器口令,防止未授权停止或保存配置:在 lsnrctl 提示符下执行 change_password,随后用 set password 并在执行 stop/save_config 前验证;生效后会在参数文件中生成类似 PASSWORDS_LISTENER 的哈希条目。示例:
    lsnrctl
    LSNRCTL>
         change_password
    Old password:
    New password:
    Reenter new password:
    LSNRCTL>
         set password
    Password:
    LSNRCTL>
         save_config
    
    注意:执行 stop、save_config 等敏感操作前必须先 set password,否则会被拒绝。完成后可用 status 查看 Security 状态。
  • 启用管理限制,禁止运行时通过 lsnrctl 动态修改配置:在 $ORACLE_HOME/network/admin/listener.ora 的监听器段添加 ADMIN_RESTRICTIONS_=on。开启后,诸如 set log_file 等运行时修改将被拒绝,必须停止监听器、改文件后再启动。示例:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
        )
      )
    ADMIN_RESTRICTIONS_LISTENER = on
    
    提示:忘记口令时,可临时编辑 listener.ora 删除或注释 PASSWORDS_LISTENER/ADMIN_RESTRICTIONS_LISTENER 条目后重启,再按上法重设口令。

二 加密与传输安全

  • 启用传输加密与校验:在 listener.ora 中为监听器段添加参数,要求客户端加密并限定算法套件。示例:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
        )
      )
    SECURITY_LISTENER =
      (ENCRYPTION_CLIENT = REQUIRED)
      (ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128))
    
    说明:ENCRYPTION_CLIENT=REQUIRED 强制加密;ENCRYPTION_TYPES_CLIENT 指定可用算法。保存后 reload/重启监听器生效。
  • 启用 TLS/SSL 加密通道(可选,需证书):在 listener.ora 中增加 SSL/TLS 相关参数并配置证书/密钥,限定协议与套件。示例:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCPS)(HOST = your_host)(PORT = 2484))
        )
      )
    SECURITY_LISTENER =
      (SSL_VERSION = 1.2)
      (SSL_CIPHER_SUITES = (TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256))
    
    说明:TCPS 表示 SSL/TLS 监听;SSL_VERSION 与 SSL_CIPHER_SUITES 用于限定协议与加密套件。证书与密钥文件权限与路径需按 Oracle 要求配置。

三 访问控制与最小权限

  • 网络层访问控制:仅放通受信网段/IP 访问监听器端口(默认 1521)。示例(ufw):
    sudo ufw allow from 192.168.1.0/24 to any port 1521
    sudo ufw enable
    
    生产环境建议仅在内网或跳板机可达范围内开放。
  • 主机与文件权限:监听器进程以 oracle 用户运行,软件目录与配置文件属主/属组设为 oracle:oinstall,关键文件权限最小化(如 700/640),避免使用 root 直接运行监听器。示例:
    sudo chown -R oracle:oinstall $ORACLE_HOME
    sudo chmod 700 $ORACLE_HOME/bin/lsnrctl
    
  • 命令级权限控制:通过 sudoers 精细化授权,仅允许特定用户/组执行 lsnrctl(必要时免密),避免普通用户直接调用管理命令。示例(visudo):
    oracle ALL=(ALL) NOPASSWD: /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl
    
    如需更细粒度,可结合 sudo 命令白名单与命令参数限制。

四 日志审计与持续加固

  • 启用与轮转日志:提高日志级别便于审计,定期归档与清理。示例:
    lsnrctl
    LSNRCTL>
         set log_level 16
    LSNRCTL>
         set log_file listener.log
    LSNRCTL>
         trace support
    LSNRCTL>
         show trc_file
    
    说明:log_level 16 为较详细日志;trace 支持更细粒度诊断(生产慎用)。日志默认位于 $ORACLE_HOME/network/log/。
  • 持续加固清单:
    • 定期更新 Oracle 数据库与监听器补丁,修复已知漏洞。
    • 仅监听必要接口与端口,避免将监听暴露在不可信网络。
    • 定期备份并基线化 listener.ora,变更走变更流程与回退方案。

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


若转载请注明出处: 如何用lsnrctl进行安全配置
本文地址: https://pptw.com/jishu/751702.html
lsnrctl如何处理错误日志 Ubuntu lsnrctl命令如何优化

游客 回复需填写必要信息