防火墙工作原理
防火墙工作原理:
本质上是查看会话表。
报文到达防火墙,先查看是否会有会话表匹配。
- 如果有会话表匹配,则匹配会话表转发。
- 如果没有匹配会话表,看是否能够创建会话表。
前提是必须是首包才能创建会话表。
A.先匹配路由表。B.再匹配安全策略。
TCP: SYN ———首包
SYN+ACK
ACKICMP echo-request—-首包
echo-replyUDP没有首包概念
状态检测机制:
- 状态尖刺机制开启的情况下,只有首包通过设备才能建立会话表,后续包直接匹配会话表项进行转发。
- 状态监测机制关闭的情况下,即使首包没有经过防火墙,后续包只要通过防火墙也可以生成会话表项。
开启命令:
firewall session link-state check
——-默认就开启关闭状态检测的命令:
undo firewall session link-state check tcp/icmp
首包建立会话——-使用状态检测。
状态检测主要针对TCP和ICMP报文
什么情况需要关闭状态检测:
- (场景)来回路径不一致的情况 (SACG)。
详解会话表
查看会话表:
查看会话简要信息
1 | [FW1]display firewall session table ---------------查看会话表简要信息 |
筛选会话:
1 | [FW1]display firewall session table servic ftp ---------筛选会话 |
查看会话表详细信息:
1 | [FW1]display firewall session table verbose --------------------查看会话详细信息 |
详细会话表中有 13项参数。
协议,指明会话的协议
VPN,在虚拟防火墙中使用
ID,标志唯一的会话
ZONE(区域),指明流量的区域走向。
TTL,会话的老化时间。
Left:会话剩余时间
output-interface:出接口
nextHop:下一跳
MAC:mac地址,
MAC地址为全0的情况:
- 到达防火墙的接口
- 虚拟防火墙的MAC也是全0
- 当ARP请求失败的时候
反向流量统计
正向流量统计
五元组,源地址:源端口–>目的地址:目的端口
注意:ICMP的端口计算方法:
ICMP报文中的Identifier字段16进制转换为10进制,作为源端口
将Type字段和Code字段的值做与运算,作为目的端口。
例如:Type=8,Code =0;则目标端口=1000 0000 0000 & 0 = 2048
ICMP带端口的原因:因为ICMP需要做状态检测,所有需要五元组。ICMP端口无实际意义。
端口号为0的情况:
当流量为OSPF,ESP,AH等协议时,端口为0.
PolicyName:匹配的策略名称
老化时间(TTL)的问题:
各协议会话默认老化时间:
协议老化时间 | 协议 |
---|---|
20s | icmp |
30s | dns |
120s 2min | qq/tftp/l2tp/udp/rip/ntp/snmp/syslog/h323 |
240s 4min | ftp-data/GRE/AH |
600s 10min | SIP/HTTPS/ESP |
1200s 20min | HTTP/FTP/Telnet/SMTP/sqlnet/ssh/tcp/pop3/BGP |
14400s 4hours | sqlnet-data |
总结:
TCP 20min SYN 5s SYN+ACK 5s ACK 20Min frist-fin 900s finrst 5s
UDP 2min
ICMP 20s
注意:在网管防火墙流量时,当web在线时,https老化10min,当关闭web时,显示https老化时间10s。
即:HTTPS(有流量)—-10min(TTL)
HTTPS(无流量)—–10s
什么情况会话表会老化:
- 老化时间到了
- 检测到有病毒的时候,会话表立刻老化,并且加入黑名单
- 发送FIN,第一次收到(frist-fin),老化时间变为900s(默认),第二次收到fin(finrst ),老化时间变为10s。
老化时间的修改:
知名协议修改老化时间
[FW1]firewall session aging-time service-set http 2000
·—-注意单位是S非知名协议修改时间
第一步:自定义协议
ip service-set abc type object
service 0 protocol 200
firewall session aging-time service-set abc 200
会话时间存在的问题:
- 下载过大的FTP文件,会出现中断。
- 访问数据库,操作的时间大于TCP的老化时间。
解决方案:
长会话:默认老化时间168小时。 注意:只针对TCP。
长会话的默认会话时间可以修改。
1 | [FW1]display firewall long-link aging-time |
配置长回话步骤:
配置ACL定义协议
acl number 3000 rule 5 permit tcp source 10.1.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 destination-port eq ftp
调用ACL
interzone trust dmz long-link 3000 inbound
参考资料:华为HedEx文档