1.用户认证需求背景
公共上网区则需要输入账号和密码才能上网,确保网络行为能跟踪到

2.HTTP协议
①定义:
包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件
彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用
URL表示。最常见的超文本格式是超文本标记语言HTML。
②URL:
URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的
某一个文档。URL由协议、主机和端口(默认为80)以及文件名三部分构成。如:

③超文本传输http:
是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主
机(浏览器)的应用层协议,以实现超链接的功能。
3.HTTP工作原理
在用户点击URL为
http://www.qq.com/index.html的链接
后,浏览器和Web服务器执行以下动
作:
浏览器分析超链接中的URL
2 浏览器向DNS请求解析
www.qq.com的IP地址
3 DNS将解析出的IP地址222.246.129.80
返回浏览器
HTTP over TCP
4 浏览器与服务器建立TCP连接(80端口)
5 浏览器请求文档:GET /index.html
6 服务器给出响应,将文档
index.html发送给浏览器
7 释放TCP连接
8 浏览器显示index.html中的内容

4.访问网站分析
第一步:浏览器分析超链接中的URL
第二步:DNS请求
PC向DNS服务器222.246.129.80发出DNS QUERY请求,请求www.qq.com的A记
录
第三步:DNS回复
DNS服务器222.246.129.80回复DNS response,解析出www.qq.com域名对应的三条
A记录59.37.96.63、14.17.42.40/14.17.32.211
DNS的A记录:将主机名解析成对应的IP
第四步:PC向解析出的www.qq.com服务器地址发起tcp三次握手
第五步:PC向www.qq.com 服务器发出GET请求,请求主页
第六步:www.qq.com 服务器回应HTTP/1.1 200 OK,返回主页数据包
第七步:完成数据交互过程,四次挥手断开连接
5.HTTP请求方法
方法(Method)是对所请求对象所进行的操作,也就是一些命令。请求报文中
的操作有:

6.POST请求
向指定的资源提交要被处理的数据

7.HTTP响应及状态码

8.HTTP头部

9.UA字段
User-Agent: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标
识 版本信息
10.SERVER字段
Server:响应头包含处理请求的原始服务器的软件信息

11.Referer字段
Referer:浏览器向 WEB 服务器表明自己是从哪个 网页/URL 获得/点击 当前请求
中的网址/URL。

12.HTTP重定向
Location:WEB 服务器告诉浏览器,试图访问的对象已经被移到别的位置了,
到该头部指定的位置去取。

13.密码认证实战分析
首先我们以访问www.qq.com为例,回顾一下密码认证的数据流过程
第一步:PC先进行www.qq.com DNS解析域名过程
第二步:PC向解析出的www.qq.com服务器地址发起tcp三次握手
第三步:PC向www.qq.com 服务器发出GET请求,请求主页
第四步:AC拦截PC的GET请求,并把AC自己伪装成服务器(用腾讯服务器的IP
给PC发包),给PC回复HTTP 302 Moved Temporarily ,要求PC重定向请求以下
URL
http://10.1.3.4:80/ac_portal/proxy.html?template=default&tabs=pwd&vlanid=0&url
=http://www.qq.com%2f
其中10.1.3.4就是AC设备的LAN IP、网桥IP或者虚拟IP
第五步:PC自动重定向访问AC的认证界面,输入正确的账号密码,登录成功
14.配置思路
1、 首先为办公区的用户建一个用户组,在【用户认证与管理】-【用户管理】
-【组/用户】中,点新增,选择【组】,定义组名:公共区
2、新增用户,设置本地密码
3、新增【认证策略】,选择认证方式为密码认证
4、【认证高级选项】-【其他选项】勾选【未认证或被冻结时允许访问DNS服
务】
15.排错思考
先确认网络环境,手动打开是否可以打开
1、网桥部署虚拟地址是否跟内网冲突,PC浏览器是否做了上网代理
2、AC下接的设备是否有做限制
3、需要启用未通过认证的用户允许访问dns服务
4、访问的如果是https的网站需要启用HTTPS请求未通过认证时,重定向到认证页
面(代理时除外)
5、根据关联的上网策略不能拒绝http应用和dns应用
6、防火墙规则不能拒绝80和53端口【系统管理】-【防火墙】-【LAN-WAN】
16.应用控制技术
①需求背景
全天不允许使用QQ等聊天工具
传统行为检测原理:传统的网络设备根据根据数据包的五元组(源IP,
目的IP,源端口,目的端口,协议)这些特征等来识别应用并进行丢弃、
转发、接收、处理等行为

通过识别协议为UDP,端口为8080,从而识别出是QQ聊天的应用,将该类数据
包全部丢弃,实现封堵的目的
配置思路
1、 新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】在应用
里面勾选IM,生效时间全天,移动终端设备里面勾选通讯聊天,动作拒绝,在
【适用对象】选择办公区,即对办工区的所有用户关联上这条控制策略。
2、新增【上网策略】-【上网审计策略】-【应用审计】添加,勾选所有选项,
在【适用对象】选择办公区,即对办工区的所有用户关联上这条识别策略。
②需求背景
全天只允许特定QQ账号上网,
不允许其他QQ账号上网
•从数据包中可以看到,QQ用户的字段在应用层OICQ协议的Data字段。
•该需求需要识别特定的QQ用户,而传统的行为检测只能对链路层、网
络层、传输层进行数据处理,不能对应用层进行操作。

17.应用特征识别技术
传统行为检测 VS 深度行为检测

18.深度行为检测技术
•产生背景:传统技术无法识别精细的数据包应用和行为,无法识别经
过伪装的数据包,无法满足现在的安全需求和可视需求
分为:深度包检测技术(DPI)和深度流检测技术(DFI)
深度行为检测技术优点:
(1)可视化全网
(2)流量精细化管理
(3)减少或延迟带宽投入,
降低网络运营成本
(4)及时发现和抑制异常流量
(5)透视全网服务质量,保障
关键业务质量
(6)丰富的 QoS 提供能力
19.深度包检测技术(DPI)
深度包检测不仅检测源地址、目的地址、源端口、目的端口以及协议类
型,还增加了应用层分析,另外识别各种应用及其内容
分为:基于“特征字”的检测技术;基于应用网关的检测技术;基于行为模式的检测技术
①基于“特征字”的检测技术(DPI)
•客户需求:在客户局域网中只允许电脑上网,不允许手机上网。
•需求分析:该需求需要能够识别哪些上网数据是手机端发出的,哪些
是PC端发出的。通过数据包分析,发现手机和电脑在同时上网的时候
(同时使用HTTP协议)会在HTTP协议的User-Agent字段区分出手机
数据和PC数据。
•不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的特征,
这些特征可能是特定的端口、特定的字符串或者特定的 Bit 序列。
•基于“特征字”的识别技术通过对业务流中特定数据报文中的特征信
息的检测以确定业务流承载的应用和内容。
•通过对应用特征信息的升级(例如http数据包中的User-Agent的位
置),基于特征的识别技术可以很方便的进行功能扩展,实现对新协议
的检测。
②基于应用层网关的检测技术(ALG)
某些应用的控制流和数据流是分离的,数据流没有任何特征。这种情况
下,我们就需要采用应用层网关识别技术。
应用层网关需要先识别出控制流,根据的协议,对控制流进行解析,从
协议内容中识别出相应的业务流。
客户需求:禁用VoIP视频。
需求分析:VoIP视频协议是先使用控制信令来协商数据的传输,之后
进行数据流的传输。VoIP视频数据交换过程抓包如下:

VoIP视频协议的数据流可以看到是基于UDP的,跟踪数据流,发现该数据没有
任何特征,但是VoIP在进行数据传输前是有控制信令来协商数据的传输
③基于行为模式的检测技术
基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即
将实施的动作。
行为模式识别技术通常用于无法根据协议判断的业务的识 别。
例子:垃圾邮件行为模式识别
SPAM(垃圾邮件)业务流和普通的 Email 业务流从 Email 的内容上
看是完全一致的,只有通过对用户行为的分析,才能够准确的识别出
SPAM 业务。
20. DFI 技术( 深流检测技术)
基于流量行为的应用识别技术,即不同的应用类型体 DFI •
基于流的行为特征,通过 各有不同。 等 现在会话连接或数据流上的状态
与已建立的应用数据流的数据模型对比,判断流的应用类型或业务。

流量的行为特征,建立流量特征模型,通过 分析会话连接流的包长、连接速率、传输字节量、包与包之间的间隔等信息来与流量模型对比,从而实现鉴别应用类型。
21.对比

配置思路
1、 新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】在应用
里面勾选IM,生效时间全天,移动终端设备里面勾选通讯聊天,动作拒绝,在
【适用对象】选择办公区,即对办工区的所有用户关联上这条控制策略。
2、新增【上网策略】-【上网审计策略】-【应用审计】添加,勾选所有选项,
在【适用对象】选择办公区,即对办工区的所有用户关联上这条识别策略。
3、新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】-【QQ白
名单】,将允许的QQ用户加入QQ白名单。
22.需求背景
IT部上班时间不允许访问视频网站
①HTTP识别工作原理
HTTP网站识别,终端设备通过DNS解析域名后,跟网站服务器三次握手完
成,发给get请求,在get请求数据包中的host字段,就是我们访问网站的具体
URL,我们通过抓取这个字段来识别终端用户是访问的哪个网站,例如,我在
终端设备访问www.youku.com,抓包就可以得到如下数据包。
②HTTP控制工作原理
如果我们对该url做封堵,终端设备在发出get请求后(即完成HTTP识别), 设
备会伪装成网站服务器向终端设备发一个状态码302的数据包,源ip是网站 服
务器的ip地址(实际是我们设备发送的,我们设备发送的标识是ip.id为 0x5826
),数据包中的内容是告知终端设备访问网站服务器的拒绝界面,如下 图所示
:访问http://10.1.3.40:80/disable/disable.htm

配置思路
1、 新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】在应用
里面访问网站-娱乐在线影音及下载勾选,生效时间上班时间,动作拒绝。
2、在【适用对象】选择IT部,即对IT部的所有用户关联上这条控制策略。
23.需求背景
公共上网区的用户禁止访问淘宝
①HTTPS
全称Hypertext Transfer Protocol over Secure Socket Layer,是HTTP的安全版,
HTTPS默认使用TCP端口443,也可以指定其他的TCP端口。HTTPS中S,实际上是
SSL(Secure Sockets Layer)协议。
SSL是Netscape公司发明的一种用于WEB的安全传输协议。 随着时间的推
移由于Netscape失去了市场份额,它将SSL的维护工作移交给因特网工程任务
组(IETF)。第一个后Netscape版本被重新命名为安全传输层协议(TLS),
TLS (Transport Layer Security :RFC 2246)是基于SSL上研发的,但是与SSLv3.0有细
微的差别。因此,SSL协议有时也称为TLS协议。目前常用的是TLSv1.0的协
议。
②HTTPS原理

第一步:
客户端给服务器端发个hello的问候,问候里包含有它使用的SSL版本号、加
密套件列表,压缩算法列表,客户端随机数,sessionid = 0;
◼
服务器收到客户端的问候后,会从客户端提供的版本号中选出双方都支持
的最高版本, 从加密套件列表选择一种支持也安全性强的加密套件,从压
缩算法列表选择压缩算法(一般为空)。
第二步:
服务器端将上述选择的加密套件,压缩算法(NULL),且计算一个session_id,和
服务器端随机数发送给客户端
客户端收到serverhello的报文会将加密套件,压缩算法(NULL),session_id,和
服务器端随机数缓存起来。接着继续握手过程。
第三步:
服务器端将自己的证书发送给客户端,证明自己的身份。证书中包含有服务
器的身份信息,以及服务器的公钥。
客户端收到Certificate报文会验证该证书是否过期,并将服务器的公钥缓存起
来。
第四步:
如果是SSL的双向认证的话 ,那么服务器端会向客户端发送client cert
request 消息,索要客户端的证书,证书中包含有server端支持的证书类型,
和所信任的所有证书发行机构(CA(Certificate Authority))列表。
客户端收到Client Certificate Requst报文将消息中的证书类型列表和可信任证
书发行机构列表保存下来,可在后面发送客户端证书时候拿来筛选证书用。
第五步:
服务器端通知客户端这一步的握手消息发送完成。等待客户端确认。
第六步:
客户端从之前收到server 端发的 cert request 消息中的支持的证书类型列表
和信任的根 CA (Certificate Authentication)列表中选择满足条件的第一个证书
发送给服务器。
◼
服务器端会缓存客户端的公钥。
第七步:
若为RSA加密,客户端则产生一个 48 位随机数作为 pre-master(预主密钥) 并
用服务器公钥加密后发出去。
◼
服务器端缓存预主密钥。
第八步:
Certificate verify这个消息中要包含一个签名,签名里头内容就是从 client
hello 开始到目前为止所有握手消息(不包括本消息)的摘要,然后用客户
端的私钥加密。
由于之前的Client Certificate消息中包含有客户端的公钥,因此用公钥解密
该消息,验证客户端的真实性。
第九步:
[Change Cipher Spec]该消息只有一个值为1的字节。不属于握手协议,和握
手协议同一级别的改变加密约定协议。发送该消息的作用是为了告诉对方
接下来的消息将采用新协商的加密套件和密钥进行通信。
在发送该消息的同时,客户端会把之前的客户端随机数,服务器端随机数、
以及预主钥产生一个主密钥。并将主密钥进行密钥导出(服务器端的写MAC
密钥、客户端写MAC密钥、服务器端的写密钥、客户端的写密钥),该过程
只在本地进行,不发送给对方。
第十步:
这是客户端SSL协商成功结束的消息。也是第一个用协商好的密钥加密的消
息。会把从client hello一直到现在的数据摘要,用客户端密钥加密,发送
给服务器。确保握手过程的完整性和机密性。
24.HTTPS识别工作原理
HTTPS网站识别,终端设备通过DNS解析域名后,跟网站服务器三次握手完
成,终端开始发Client hello报文(SSL握手的第一阶段),在此报文中的
server_name 字段包含所访问的域名,上网行为管理提取Server_Name字段来识
别https的网站。如下图所示:在终端设备访问https://www.baidu.com抓取到的
数据包。

24.HTTPS控制工作原理
对HTTPS网站封堵,终端设备在发送Client hello报文后,我们识别到该网站,
然后同http封堵一样,伪装网站服务器给终端设备发送RST包(ip.id也是
0x5826),断开终端设备与网站服务器之间的连接,从而控制HTTPS网站的访
问。
与HTTP封堵的区别:HTTPS整个过程都是加密的,在没有做SSL中间人劫持的时
候是无法劫持和伪造具体数据包的,从而无法实现重定向到拒绝界面。

25.配置思路
1、 新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】在应用
里面勾选访问网站-web应用-搜索引擎,生效全天,动作拒绝。
2、在【适用对象】选择公共上网区,即对公共上网区的所有用户关联上这条
控制策略。
26.自定义应用方法
在【对象定义】-【自定义应用】可以对应用的数据包方向、协议、目标端
口、目标ip、匹配的目标域名识别,只要能确定应用的这些特征,我们就可以
识别和控制这些应用。
【注意】这些特征需要尽可能的精确,例如:只填写了端口80,其他条件匹配
所有,就会造成所有的HTTP80端口的数据都会识别成这个自定义的应用
在【对象定义】-【URL分类库】可以自定义URL,如下图所示,支持匹配
URL和域名关键字。
27.对象自定义总结
1. 自定义准入规则:可以定义运行了某个进程才允许(或不允许)上网
2. 自定义应用(封堵或审计精准的应用)
3. 自定义URL(封堵或审计精准的URL)
4. 自定义关键字(用作关键字过滤或审计)
5. ······
对象自定义的作用:对于精准的应用等进行精准的管控,保证在99.99%的日常
应用能被sangfor内置识别库识别的基础上,对0.01%的应用进行精准的管控
28.排查思路
1、检查设备部署,如是旁路模式部署,设备本身只能对一些TCP的应用做控制
2、【实时状态】-【在线用户列表】查看策略对应的用户是否在线
3、检查规则库“应用识别”“URL库”“审计规则库”是否为最新
4、检查上网权限策略是否与用户关联,检查用户是否关联了多条上网权限策略,注意策略
的叠加顺序(自上而下优先级递减)
5、检查【系统诊断】-【上网故障排除】是否开启直通;【系统配置】-【全局排除地址
】是否有排除内网PC的ip、目标域名、目标IP等
6、检查是否有自定义应用,禁用或删除自定义的应用看策略是否正常
7、给用户关联一条【上网审计策略】,开启所有应用的审计,进入【内置数据中心】,检查
数据中心识别到的应用和实际使用的应用是否对应。如不对应那回滚下应用识别规则库
再重新更新规则库
8、如数据中心没有识别内网PC任何的应用,此时注意检查客户是否有其它的上网线路,抓
包分析用户流量是否经过AC