目录
Ⅰ 安全策略说明
一、安全策略原理
1、为了对数据流进行统一控制,方便用户配置和管理,NGFW设备引入了安全策略的概念。通过配置安全策略,防火墙能够对经过设备的数据流进行有效的控制和管理。
2、当防火墙收到数据报文时,把该报文的方向、源地址、目的地址、协议、端口等信息和用户配置的策略匹配,决定是否建立这条数据流,并且把这条流和匹配的策略关联起来,
从而确定如何处理该流的后续报文,实现允许、丢弃、加密和解密、认证、排定优先次序、调度、过滤以及监控数据流,决定哪些用户和数据能进出,以及它们进出的时间和地点。
3、在安全策略中还可以根据匹配结果,对符合规则的报文实行过滤动作(允许通过或丢弃),简单地实现包过滤功能。
4、在没有配置任何安全策略的情况下,系统默认有一条全any禁止的策略,对于经过设备的所有数据包,其缺省策略为禁止。
5、安全策略按从上到下顺序匹配的原则,只对通过设备的数据包进行处理,对于到设备本身的数据包和设备本身发出的数据包不进行限制。
二、配置安全策略要点
安全策略的基本要素是匹配条件和动作。匹配条件包括数据流的方向、源地址、目的地址、服务和策略生效的时间范围。
其中,数据流的方向通过指定入接口/安全域和出接口/安全域来确定,源地址、目的地址、服务和时间范围都可以直接引用已定义的对象。
1、源接口/区:数据流的流入方向,可以指定某个接口,也可以是已定义的某个安全域,any表示所有口
2、源地址:数据流的源地址,可以引用已定义的某个地址对象或地址对象组,any表示源地址为任意。
3、目的接口/区:数据流的流出方向,可以指定某个接口,也可以是已定义的某个安全域,any表示所有接口。
4、目的地址:数据流的目的地址,可以引用已定义的地址对象或地址对象组,或者引用虚拟映射ip。
5、时间表:策略生效的时间,可以引用已配置的时间对象,always表示所有时间。
6、服务:数据流的服务属性,包括协议、源端口和目的端口,可以引用系统预定义服务、已定义的服务对象或服务对象组,any表示服务为任意。
7、动作:对符合匹配条件的数据流执行的动作,ACCEPT为允许,DENY为拒绝,IPSEC为ipsec加密,SSL-VPN为sslvpn加密。
8、记录允许流量:选中此复选框可以在防火墙策略中启用流量日志功能。
9、NAT:是否启用源NAT(SNAT)
10、启用基于用户的认证策略:是否开启用户上网认证策略
11、UTM:是否开启UTM相关应用防护功能
12、流量控制:选中此复选框可以在防火墙策略中启用流量控制功能,对策略中指定的流进行服务质量保证。
Ⅱ 数据包处理流程
一、防火墙对数据包处理流程图
二、防火墙对数据包处理过程的各步骤
1、Interface(网卡接口)
网卡接口驱动负责接数收据包,并转交给下一过程。
2、DoS Sensor(DoS防御,默认关闭)
负责过滤SYN flood、UDP flood、ICMP flood等DoS攻击,并可针对源、目的IP的并发连接数进行限制。
3、IP integrity header checking(IP头完整性校验)
检查数据包头完整性。
4、IPSec(IPSec VPN解密,默认关闭)
如果是防火墙本身的IPSec VPN隧道中的数据包,将对其进行解密。
5、DNAT(目标地址NAT)
检查数据包中的目标IP地址,如果在 VIP(目标地址NAT)表中,则将其替换为映射后IP地址(真实IP地址)和端口。
6、Routing(路由)
本步骤根据数据包的目标IP地址确定该数据包的流出接口。
7、Stateful Inspection Engine(状态检测引擎)
状态检测引擎包含几个组件:
a、Policy lookup(策略查找)
在会话建立阶段,判断是否允许数据通过并建立会话状态,并根据UTM功能的开关决定数据包是否需要进入流检测引擎(Flow-based inspection engine)和代理检测引擎(Proxy-based inspection engine)。
b、Session track(会话跟踪)
维护会话表,跟踪会话状态、NAT和其它相关功能。会话建立之后的后续数据包不再进行策略匹配,直接根据会话状态转发。
c、User authentication(用户认证,默认关闭)
对用户身份进行认证,根据用户名和用户所在组选择防火墙策略。
d、Management traffic(管理流量)
与防火墙自身相关的流量处理,如Web、SSH管理,Syslog、SNMP通信等。
e、SSL VPN流量(默认关闭)
将SSL VPN流量解密,送至SSL VPN虚拟接口(通常为ssl.root),然后查找策略。
f、Session helpers(即ALG)
对FTP、SIP、Oracle等特殊应用进行处理,如动态开启策略、NAT,自动修改payload等,保证其正常通信。
8、Flow-based inspection engine(流检测引擎,默认关闭)
如果在防火墙策略中启用了防病毒、IPS、应用控制等流检测UTM功能,则会话后续数据包交由流检测引擎处理。
9 、Proxy-based inspection engine(代理检测引擎,默认关闭)
如果在防火墙策略中启用了Web过滤、防病毒、反垃圾邮件、DLP等应用代理检测UTM功能,则会话后续数据包交由代理检测引擎处理。
10、IPSec(IPSec VPN加密,默认关闭)
如果会话匹配了IPSec VPN策略,此步骤将数据包加密封装
11、Source NAT(源地址NAT)
如果策略中启用了NAT,则将数据包的源IP地址和源端口替换为目标接口地址或IP池中的IP地址(通常为公网IP地址)。
12 、Routing(路由)
最后一个路由步骤,确定数据包的流出接口,由路由引擎转发数据包。
13 Egress(流出)
由流出接口网卡将数据包发出防火墙。
Ⅲ 数据流分析 debug flow
一、工具说明
在防火墙部署中,经常会遇到防火墙接收到了数据包,但并未进行转发。可以通过diagnose debug flow 命令来对数据包的处理过程进行跟踪,可以清晰查看数据包再各个功能模块内
的处理过程,判断出数据包如何被转发或者丢弃。
二、命令介绍
diagnose debug enable 开启debug功能
diagnose debug flow show console enable 开始flow的输出
diagnose debug flow filter add 119.253.62.131 定制过滤器,支持多种过滤;可以添加多个组合的过滤器
diagnose debug flow filter 查看过滤器的配置
diagnose debug flow trace start 6 定义索要跟踪数据包的数量
三、过滤参数
RG-WALL# diagnose deb flow filter
addr IP address. // ip地址
clear Clear filter. // 清除过滤器
daddr Destination IP address. // 目的地址
dport Destination port. //目的端口
negate Inverse filter. //反向过滤
port port // 接口, 如port1
proto Protocol number. // 协议, 如6,tcp协议, 17 udp, 1 icmp
saddr Source IP address. //源地址
sport Source port. // 源端口
vd Index of virtual domain. //vdom
四、分析示例
RG-WALL# id=36871 trace_id=1 msg="vd-root received a packet(proto=6, 192.168.
1.110:51661->119.253.62.131:80) from internal."id=36871 trace_id=1 msg="allocate a new session-00016920" //internal口收到数据,建立新会话
id=36871 trace_id=1 msg="find a route: gw-192.168.118.1 via wan1" //查找到路由表
id=36871 trace_id=1 msg="find SNAT: IP-192.168.118.28, port-43333" //检测存在NAT配置
id=36871 trace_id=1 msg="Allowed by Policy-1: SNAT" //匹配策略,ID1
id=36871 trace_id=1 msg="SNAT 192.168.1.110->192.168.118.28:43333" //做NAT
id=36871 trace_id=3 msg="vd-root received a packet(proto=6, 119.253.62.131:80->1
92.168.118.28:43333) from wan1." // Wan1口收到返回数据包
id=36871 trace_id=3 msg="Find an existing session, id-00016920, reply direction" //数据包匹配会话id-0001692
id=36871 trace_id=3 msg="DNAT 192.168.118.28:43333->192.168.1.110:51661" //做反向的DNAT
id=36871 trace_id=3 msg="find a route: gw-192.168.1.110 via internal" //查找路由,发送到internal口
id=36871 trace_id=5 msg="vd-root received a packet(proto=6, 192.168.1.110:51661-
>119.253.62.131:80) from internal." //internal口收到后续数据包
id=36871 trace_id=5 msg="Find an existing session, id-00016920, original direction" //匹配会话id-0001692
id=36871 trace_id=5 msg="enter fast path" //直接转发
id=36871 trace_id=5 msg="SNAT 192.168.1.110->192.168.118.28:43333" //NAT
例:策略拒绝访问
RG-WALL#id=36871 trace_id=23 msg="vd-root received a packet(proto=6, 192.168
.1.110:51768->119.253.62.131:80) from internal."
id=36871 trace_id=23 msg="allocate a new session-00017537"
id=36871 trace_id=23 msg="find a route: gw-192.168.118.1 via wan1"
id=36871 trace_id=23 msg="Denied by forward policy check" //直接被策略拒绝,检查策略配置问题
常见debug flow结果
没有该项策略,或策略不匹配,数据包被丢弃,msg="iprope_in_check() check failed, drop"
策略动作拒绝,或命中隐含策略, 数据包被拒绝,msg="Denied by forward policy check"
反向路径检查失败,丢弃数据包,msg="reverse path check fail, drop"
会话经由 session-helper 处理,msg="run helper-ftp(dir=original)"