NGFW和HTTPS的部署方案

发布时间:  2017-01-14 浏览次数:  340 下载次数:  25
问题描述
NGFW和HTTPS的部署方案
解决方案

这个方案在M地区B客户现场已经部署,这里把方案实施过程还原出来,希望对类似的场景能起到一点借鉴作用。

先说下客户的原始需求:一所学校(包括若干个校区),在出口部署NGFW,客户希望对学生上网的网页进行内容过滤,过滤包括暴力、性等内容。客户使用NGFW的内容过滤功能,配置了关键字过滤,实际效果是,仍然有很多应该被过滤的网页能够被打开,研发定位,发现这些是HTTPS网站。

好吧,现在很多网站都已经采用HTTPS了,这样安全性更高,这里不做深入介绍,对于不care技术细节的客户,我喜欢这样介绍HTTPS:就是在原来的HTTP访问上面多了一个加密,这个加密叫SSL加密。这样看起来,因为网页内容被加密了,所以NGFW的内容过滤起不了作用(不知道被加密的网页里是不是有这些关键字)。NGFW有一个专门的模块来干这个事情:SSL解密。SSL解密的配置方法这里不介绍了,但是可以大概介绍下它的原理:


如上图,为了实现对加密流量的内容安全过滤(不仅仅是内容过滤,文件过滤、应用行为控制、IPS等都会有这个问题),SSL代理在客户端与服务器之间扮演透明代理的角色。一方面,SSL代理代替服务器与客户机建立SSL连接,另一方面,又代替客户端与服务器建立连接。SSL代理接收一端发来的数据,解密并送交相关模块(客户这里就是内容过滤)进行内容安全过滤,再将经过过滤的流量加密从另外一端发出。

帮客户配置了代理策略(SSL解密)后进行测试,确实有效果,但真正的问题(噩梦)也就来了。客户发现每次访问HTTPS网站都会有告警产生(登陆过NGFW的web页面的人应该知道这个告警是什么样子),有些浏览器比如chrome访问某些HTTPS网站时甚至直接就提示无法访问。再次定位发现是证书校验引起的:从上面的图中可以看到NGFW做的是SSL代理,这个交互中NGFW会将服务器推送的证书替换成NGFW自己签发的证书,这可能会被客户端(浏览器)察觉,从而产生告警,如果客户端对证书校验异常严格会直接中断这个连接发起的访问。

解决的办法是在客户端导入防火墙CA证书,就好比你先把防火墙介绍给客户端认识,认识后客户端再收到防火墙发过来的证书就知道是熟人过来的,就不告警了,也不会中断连接。但是这又引入了两个问题,首先是各个浏览器的证书系统并不统一,测试发现同一台PC上,如果在IE导入了NGFW的CA证书,用chrome浏览器访问时也不会有告警,说明chrome和IE一样用的都是microsoft的证书系统,但是firefox却有自己的证书系统,所以这台PC上再用firefox访问时还是会有告警,需要在firefox上再导入一次。第二个问题是有那么多PC,需要网络管理员都去导入一遍证书,客户觉得不可接受,而且客户又提出很多学生使用移动终端(phone、pad)接入的,需要怎么搞?

好吧,本着客户是上帝的原则,我们开始找解决方案。首先我们测试整理了一份SSL解密证书导入指导,里面包括了市面上主流浏览器和终端的证书导入方法,比如IE、firefox、mac OS、IPAD、android等,图文并茂,我们测试确认导入证书后不会再有告警(第一原则是保证功能要好使,虽然操作比较复杂)。然后我们开始寻求一种证书自动安装的方法,分析发现现网的终端可以分为两类,一类是PC,其他就是移动终端,都是需要用域账号登陆的(学校有自己的AD服务器),其中移动终端使用了我们公司的anyoffice。有人提出一个设想,既然用户上网前都要用自己的域账号先登陆,也就是先要和域控服务器先交互,那能不能让域控服务器自动把SSL解密证书下发到终端进行安装呢?

经过N次的测试,终于做出了一个脚本,只要放到域控服务器上,PC登陆时会自动进行下发并安装,但证书是安装在windows的证书系统中,对于firefox 需要再单独进行安装,由于现网大多数使用chrome浏览器,客户觉得可以接受。接下来要解决移动终端接入的问题,移动终端上使用anyoffice自己的安全浏览器,而域控服务器并不会把证书下发和安装到这个安全浏览器中,和anyoffice的研发讨论后,发现安装anyoffice软件时本身就有一本证书,如果把anyoffice安装包中的证书替换成防火墙证书,安装完成后安全浏览器中就默认安装了这个证书,这样anyoffice安装包打包时把相关证书打包进去就可以了。方案在现网实施,再回到客户的原始需求:内容过滤,客户测试OK。

这里一个主要的实施点就在于用AD服务器自动下发和安装SSL解密证书,但有些场景不一定部署AD服务器,最笨的办法也就是手工导入了。

几份相关的指导放在附件中。

END