用 lsnrctl 进行 Oracle 监听器安全配置
一 基础防护 监听器口令与运行限制
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 状态。LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
)
)
ADMIN_RESTRICTIONS_LISTENER = on
提示:忘记口令时,可临时编辑 listener.ora 删除或注释 PASSWORDS_LISTENER/ADMIN_RESTRICTIONS_LISTENER 条目后重启,再按上法重设口令。二 加密与传输安全
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/重启监听器生效。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 要求配置。三 访问控制与最小权限
sudo ufw allow from 192.168.1.0/24 to any port 1521
sudo ufw enable
生产环境建议仅在内网或跳板机可达范围内开放。sudo chown -R oracle:oinstall $ORACLE_HOME
sudo chmod 700 $ORACLE_HOME/bin/lsnrctl
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/。