温馨提示×

centos lsnrctl安全策略

小樊
40
2025-12-23 11:03:56
栏目: 智能运维

CentOS 上 Oracle Listener 安全策略清单

一 基础防护

  • 设置监听器管理口令并持久化:在 lsnrctl 中执行 change_password 设置强口令,随后 set password 再执行 save_config 保存;口令会以密文形式写入 listener.ora,例如:PASSWORDS_LISTENER = C7AD988BC0D7DB0A。未设置口令时,攻击者可能从远程执行 lsnrctl stop 导致业务中断。完成后务必测试 stop/status/save_config 均需口令。
  • 禁用本地操作系统认证(可选,提升管控强度):在 listener.ora 增加 LOCAL_OS_AUTHENTICATION_LISTENER = OFF。注意在 Oracle 11g 上,即便启用口令,本机执行 lsnrctl status 仍可能无需口令;关闭本地认证后,本机管理也需口令。
  • 启用管理限制(可选,防在线篡改):在 listener.ora 增加 ADMIN_RESTRICTIONS_ = ON。开启后,监听器运行时禁止通过 lsnrctl 的 set 等管理命令,变更需编辑文件并 reload/stop+start 重载。
  • 文件与权限加固:确保 $ORACLE_HOME/network/admin/listener.oraoracle 用户可读写,目录权限最小化;禁止将监听配置放在可被非授权用户编辑的路径。

二 网络与访问控制

  • 限制监听端口访问:仅允许应用所在网段访问 TCP/1521(示例为 firewalld,生产请按最小网段开放)。
    • 查看区域:sudo firewall-cmd --get-active-zones
    • 仅放行业务网段:sudo firewall-cmd --zone=public --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“1521” protocol=“tcp” accept’
    • 拒绝其他来源:sudo firewall-cmd --zone=public --permanent --add-rich-rule=‘rule family=“ipv4” port port=“1521” protocol=“tcp” drop’
    • 生效:sudo firewall-cmd --reload
  • 监听地址绑定:在 listener.ora 仅绑定内网地址,避免使用 0.0.0.0 监听所有地址。
    • 示例:
      • LISTENER =
        • (DESCRIPTION_LIST =
          • (DESCRIPTION =
            • (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
          • )
        • )
  • 主机加固:仅开放必要端口(如 22/1521),关闭不必要的 ICMP/其他管理端口;监听进程以 oracle 用户运行,禁止 root 直接运行。

三 加密与日志审计

  • 启用传输加密(可选,防窃听):在 listener.ora 为监听地址配置 TCPS 并配置 SSL/TLS(示例)。
    • 示例:
      • LISTENER =
        • (DESCRIPTION_LIST =
          • (DESCRIPTION =
            • (ADDRESS = (PROTOCOL = TCPS)(HOST = 192.168.1.10)(PORT = 1521))
          • )
        • )
      • SSL_CLIENT_AUTHENTICATION = FALSE
      • WALLET_LOCATION = (SOURCE = (METHOD = FILE)(METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet)))
  • 日志与追踪:提升日志级别并开启追踪,便于审计与故障排查。
    • 示例:
      • LOG_LEVEL_LISTENER = 16
      • TRACE_LEVEL_LISTENER = 16
      • TRACE_FILE_LISTENER = listener_trace.log
  • 审计与巡检:定期查看 $ORACLE_HOME/network/log/listener.log,关注异常 stop/start、来源 IP、频繁连接失败等;对监听配置变更建立变更记录与回滚预案。

四 维护与应急

  • 口令遗忘恢复:在 listener.ora 中删除或注释 PASSWORDS_ 行,或将 ADMIN_RESTRICTIONS_ 置为 OFF 后重启监听,即可清除口令;恢复后请立即设置新口令并重新启用限制。
  • 变更流程:遵循“编辑 listener.ora → lsnrctl reload/stop+start → 验证 status/连通性”的闭环;变更前备份配置文件。
  • 脚本自动化:如需在脚本中执行受控操作,可在 lsnrctl 交互中使用 set password <密文>(密文即 listener.ora 中的 PASSWORDS_ 值),避免交互输入口令。

0