温馨提示×

centos lsnrctl安全设置建议

小樊
32
2025-12-03 18:27:15
栏目: 智能运维

CentOS 上 Oracle Listener lsnrctl 安全设置建议

一 基础防护

  • 设置监听器管理密码并持久化
    在 lsnrctl 中执行:change_password → 输入旧口令(首次直接回车)→ 设置强口令 → 再次输入确认;随后执行 set password 输入新口令,再执行 save_config 保存。未验证口令时执行 status/stop/save_config 会报 TNS-01169。完成后 listener.ora 会自动写入类似:PASSWORDS_<监听器名> = <密文>。注意:即使设置了监听密码,通常仍可在本机无需口令启动监听;如需强制本地也认证,见下条。
  • 禁用本地操作系统认证(可选,强制所有管理操作均需口令)
    在 listener.ora 中添加:LOCAL_OS_AUTHENTICATION_<监听器名> = OFF,保存后需 reload/重启监听。此举可防止本机直接 lsnrctl status/stop 等无需口令的管理操作。
  • 启用管理限制(ADMIN_RESTRICTIONS)
    在 listener.ora 中添加:ADMIN_RESTRICTIONS_<监听器名> = ON。开启后,监听器运行时禁止通过 lsnrctl 的 set 等管理命令在线修改;变更需编辑 listener.ora 后执行 reload 或 stop/start 重载。注意:开启后将无法在运行时用 lsnrctl 动态修改参数。

二 网络与访问控制

  • 使用防火墙限制来源 IP 与端口
    仅允许应用服务器、跳板机等受控来源访问监听端口(默认 1521/TCP)。示例(firewalld):firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“1521” protocol=“tcp” accept’ && firewall-cmd --reload。避免使用 0.0.0.0/0 暴露到公网。
  • 使用 Oracle 有效节点检查(Valid Node Checking)限制客户端网段
    在 $ORACLE_HOME/network/admin/sqlnet.ora 中配置:
    • tcp.validnode_checking = yes
    • tcp.invited_nodes = (192.168.1.0/24, 10.0.0.10) # 白名单优先
    • tcp.excluded_nodes = (…) # 黑名单(与 invited_nodes 同时存在时以白名单为主)

    修改后需重启监听(lsnrctl stop/start)生效;务必将数据库服务器本机 IP 加入白名单,否则本机可能无法通过 lsnrctl 启停监听。仅适用于 TCP/IP

三 加密与日志审计

  • 启用传输加密(可选,提升链路安全)
    在 listener.ora 中为监听地址启用加密,例如:
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
    (ENCRYPTION = REQUIRED)
    (ENCRYPTION_TYPES = (AES256, AES192, AES128))
    )
    )
    客户端和服务端需一致启用加密套件;完成后重启监听。
  • 打开监听日志与跟踪,便于审计与排障
    在 listener.ora 中设置:LOG_LEVEL_LISTENER = 16(或更高),TRACE_FILE_LISTENER = listener_trace.log;必要时开启更细粒度跟踪。定期检查 $ORACLE_HOME/network/log 下的日志文件,关注异常连接与管理操作。

四 运维与加固清单

  • 运行身份与最小权限:监听器由 oracle 用户运行,禁止以 root 直接启动;文件系统权限仅 oracle:oinstall 可写 $ORACLE_HOME/network/admin。
  • 变更管控:变更 listener.ora 前先备份;变更后用 lsnrctl reload 使配置生效;保留变更记录与回滚方案。
  • 口令策略:使用足够长度与复杂度口令,定期更换;变更后及时更新应急手册与堡垒机/跳板机脚本中的凭据。
  • 补丁与版本:及时应用 Oracle 安全补丁,关注监听相关 CVE;保持 $ORACLE_HOME 与 OS 组件为受支持版本。

0