1. 设置强密码验证
通过lsnrctl命令为监听器设置复杂密码,防止未经授权的用户修改监听器配置。操作步骤:进入lsnrctl交互界面(输入lsnrctl),执行set password命令(如lsnrctl> set password StrongPass123)。需确保密码包含大小写字母、数字和特殊字符,且定期更换。
2. 限制监听器访问IP范围
通过修改listener.ora文件(默认路径:$ORACLE_HOME/network/admin/listener.ora),仅允许可信IP地址连接监听器。配置示例:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 仅允许192.168.1.100访问
)
)
修改后需重启监听器(lsnrctl restart)使配置生效。
3. 启用ADMIN_RESTRICTIONS参数
在listener.ora文件中添加ADMIN_RESTRICTIONS_LISTENER ON,禁止在监听器运行时动态修改其配置(如更改端口、地址等),必须停止监听器后才能调整。此参数能有效防止恶意用户通过lsnrctl命令篡改监听器设置。
4. 配置SSL/TLS加密通信
通过加密监听器与客户端之间的通信,防止数据泄露或篡改。步骤如下:
listener.ora中添加加密配置:SECURITY_LISTENER =
(ENCRYPTION_CLIENT = REQUIRED) # 要求客户端必须使用加密
(ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128)) # 指定加密算法
(SSL_VERSION = 1.2) # 使用TLS 1.2及以上版本
mkstore命令创建钱包并导入证书),进一步提升加密安全性。5. 加固listener.ora文件权限
通过设置文件权限,确保只有授权用户(如Oracle数据库管理员)能读取或修改listener.ora。执行命令:
chmod 600 $ORACLE_HOME/network/admin/listener.ora
chown oracle:oinstall $ORACLE_HOME/network/admin/listener.ora # 假设Oracle用户为oracle,组为oinstall
防止未授权用户篡改监听器配置。
6. 配置操作系统防火墙限制访问
使用系统防火墙(如iptables、ufw)限制对监听器端口(默认1521)的入站连接,仅允许可信IP地址访问。示例(iptables):
iptables -A INPUT -p tcp --dport 1521 -s 192.168.1.0/24 -j ACCEPT # 允许192.168.1.0/24网段访问
iptables -A INPUT -p tcp --dport 1521 -j DROP # 拒绝其他所有IP访问
保存防火墙规则(如iptables-save > /etc/iptables/rules.v4),防止重启后失效。
7. 定期审计监听器日志
监控listener.log文件(默认路径:$ORACLE_HOME/network/log/listener.log),分析异常访问行为(如频繁的失败连接尝试、非法IP地址访问)。可通过tail -f listener.log实时查看日志,或使用日志分析工具(如grep、awk)提取关键信息,及时发现潜在攻击。