以下是Ubuntu系统下lsnrctl的安全设置方法:
权限控制
lsnrctl
文件所有者设为root
,所属组设为oracle
,权限设为750
(所有者可读写执行,组用户可读执行,其他用户无权限):sudo chown root:oracle /usr/bin/lsnrctl
sudo chmod 750 /usr/bin/lsnrctl
sudoers
文件限制特定用户(如oracle
)以root
权限运行lsnrctl
,无需密码:sudo visudo
# 添加以下行
oracle ALL=(root) NOPASSWD: /usr/bin/lsnrctl
配置文件安全
listener.ora
,路径通常为$ORACLE_HOME/network/admin/
)权限为660
,仅允许oracle
用户和oinstall
组读写:sudo chown oracle:oinstall $ORACLE_HOME/network/admin/listener.ora
sudo chmod 660 $ORACLE_HOME/network/admin/listener.ora
网络访问控制
ufw
)限制监听器端口(默认1521
)仅允许受信任IP访问:sudo ufw allow from <受信任IP> to any port 1521 proto tcp
sudo ufw deny 1521/tcp
加密通信
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out cert.pem
listener.ora
中启用SSL并指定证书路径。系统级安全增强
lsnrctl
的访问范围(需根据系统类型配置策略)。lsnrctl
的操作记录。注意:操作前需备份重要文件,确保配置正确性,避免影响数据库正常运行。参考来源: