防火墙位置选错,流量根本过不来
做网络设计时,很多人图省事,把防火墙直接扔在内网交换机后面,觉得这样能保护服务器。结果一上线,外部用户根本访问不了业务系统。问题出在哪?流量路径没规划好。防火墙得放在公网入口和核心内网之间,像小区大门的保安亭,不是装在楼道里。如果设备放错了位置,再强的策略也拦不住该拦的,反而把该通的也堵死了。
策略写得太宽或太窄都不行
见过有人为了测试方便,直接写一条“允许所有流量通过”的策略,测试完忘了改,结果系统上线三天就被扫出漏洞。也有人相反,策略写得太死,连DNS请求都拦了,导致内网电脑上不了网页,排查半天才发现是防火墙在作祟。正确的做法是按最小权限原则来,比如Web服务器只开放80和443端口,数据库服务器只允许特定IP连接3306端口。
状态检测关闭引发连接超时
有些老旧防火墙默认关闭状态检测(Stateful Inspection),导致TCP三次握手都正常,但数据传着传着就断了。这是因为返回包不被识别为“已建立连接”,直接被丢弃。检查配置时一定要确认状态检测是开启的,尤其是在处理HTTP、FTP这类需要双向通信的服务时。
NAT规则顺序影响访问结果
做过公网映射的人都知道,NAT规则的顺序很重要。比如你先写了一条“任意到任意”的DNAT规则,后面的精确映射就不会生效。就像快递分拣,前面一条“所有包裹送仓库”执行了,后面的“某包裹送前台”就没人理。调整规则顺序,把具体策略放前面,泛化策略放最后,才能避免这类问题。
日志不开,出了事两眼一抹黑
很多单位部署完防火墙从不开启日志记录,等真有异常流量或者攻击发生时,查无可查。建议至少开启拒绝流量的日志,并定期导出分析。可以用SIEM工具对接,一旦发现大量来自某个IP的拒绝记录,可能是扫描行为,及时加入黑名单。
配置示例:基本访问控制策略
access-list OUTSIDE_IN permit tcp any host 203.0.113.10 eq 443
access-list OUTSIDE_IN permit tcp any host 203.0.113.10 eq 80
access-list OUTSIDE_IN deny ip any any log
!
interface GigabitEthernet0/1
nameif outside
security-level 0
ip address 203.0.113.1 255.255.255.0
access-group OUTSIDE_IN in interface outside高可用部署时的心跳线问题
用双机热备时,心跳线没接或者接口故障,主备切换失败。曾经有个客户把心跳线接到管理口,结果管理网络延迟高,误判对方宕机,造成双主冲突。心跳线必须单独接物理直连线,走独立链路,不能复用业务或管理网络。
应用层协议处理不当导致功能异常
FTP这种老协议特别麻烦,主动模式要开20和21端口,被动模式还得动态放行高端口。如果防火墙没启用ALG(Application Layer Gateway),文件列不出来。类似的还有SIP、H.323这些语音视频协议,不通的时候先看是不是ALG没开。