通过 lsnrctl 的监听器安全设置指南
一 基础防护 设置监听口令与操作限制
LSNRCTL> change_password
Old password:
New password:
Reenter new password:
LSNRCTL> set password
Password:
LSNRCTL> save_config
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
)
)
ADMIN_RESTRICTIONS_LISTENER = on
二 传输与网络层加固
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.20)(PORT = 1521))
)
)
sudo ufw allow from 192.168.1.0/24 to any port 1521
在 Debian/Ubuntu 上,结合本地防火墙与监听绑定地址,可显著降低暴露面。LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = your_host)(PORT = 1521))
)
)
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 1.2
并在 sqlnet.ora 中设置客户端加密/校验策略(如 SQLNET.ENCRYPTION_SERVER = REQUIRED)。完成后重启监听使配置生效。三 命令与文件权限最小化
sudo chown root:root /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl
sudo chmod 700 /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl
oracle ALL=(ALL) NOPASSWD: /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl
四 审计监控与维护
LOG_LEVEL_LISTENER = 16
TRACE_FILE_LISTENER = listener_trace.log
定期检查 $ORACLE_HOME/network/log 下的日志与跟踪文件,关注异常连接、频繁启停与配置变更。五 应急与常见问题