使用USG5300防火墙出现SQL访问报错的问题的解决

发布时间:  2012-07-19 浏览次数:  68 下载次数:  0
问题描述
使用USG5320防火墙作为服务器组和用户区域之间的防火墙,以保护服务器安全。用户经过防火墙可以连接上SQL数据库,但是在该连接开启一段时间后,在进行传输数据时,会出现访问慢或使用改数据服务的应用程序报错的问题。
告警信息
处理过程
匹配需要长时间保持会话的数据
如:
acl number 3998
rule 0 permit tcp destination-port eq sqlnet
rule 5 permit ip source 192.168.1.100 0

在数据传输的方向上开启长连接功能
firewall interzone trust untrust
firewall long-link 3998 inbound
firewall long-link 3998 outbound

在匹配为长连接后,该会话会被保存7*24小时,在这段时间内只要该会话上有数据通过,会话的计时时间就会被重新刷新到7*24小时。
根因
在抓包分析以及察看防火墙即时会话的详细信息后。分析结果如下
防火墙默认对于SQL连接会话的保持时间为600秒,一旦该会话在600秒内未接受到新的数据触发,会话会被清除,虽然防火墙上会话清除但是用户端应用程序却无法感知,用户再次使用此连接发送数据时因为会话已经不存在,所以防火墙会新建会话,用户会感觉到有很大延时,如果应用程序对于数据发送延时有要求的话,可能会导致应用程序出错。
建议与总结
建议在实施前事先了解用户的应用需求,特别是数据库的应用。需要注意的是因为长连接会保存较长时间,如果匹配的长连接较多会对防火墙的性能造成一定影响,所以在匹配会话时需要尽可能精确。

END