[配置]飞塔防火墙之Explicit Proxy

  Explicit proxy是Fortigate firewall集成的众多优秀的功能之一,下面说下Explict防火墙的简单配置。文章中仅介绍部署web proxy的部分,FTP proxy的配置过程类似,这里就先略过。

  背景:

  1.

  最近使用中国联通的网络访问国外的一些工作常用站点非常困难,网页响应时间长,甚至无法加载网页等。

  a.

  某些部门的同事需要下载国外的同事发来的一些文件,很多是通过国外的云服务共享的,比如dropbox,google docs,onedrive等等;

  b.

  某部门同事工作常用的站点,比如webex.com,netsuite.com,微软的CRM站点;

  c.

  外企常用的搜索引擎google.com等等。大家都知道靠baidu是搜索新的有价值的技术资料是非常困难的;

  2.

  解决方案:

  a.

  代理;

  b.

  VPN;

  c.

  在国外的office提供VM给国内的用户远程使用等等;

  这里笔者之前主要使用的是代理服务器,SQUID for windows,没有使用Linux版本的SQUID主要是因为公司熟悉Linux的同事并不多,怕以后维护比较困难。我之前的SQUID配置了NTLM验证,公司内通过Domain环境管理,所以为用户开放权限比较方便。由于SQUID for windows的版本非常旧了,更新到2.7之后就不更新了。碰巧前端时间刚刚帮公司更换了Fortigate的NGFW,经过国外的同事提示,NGFW内置了Explicit proxy,非常有新鲜感。也正好有脱离SQUID的想法,所以研究了起来。

  3.

  配置步骤,大概分为以下几个部分:

  i.

  配置windows NPS作为RADIUS服务器;

  ii.

  在Active Directory中建立相应的group,用于分配权限;

  a.

  启用explicit feature;

  b.

  启用WAN Optimization feature;

  c.

  配置Explicit proxy使用的端口;

  d.

  在需要的interface启用explicit proxy web支持;

  e.

  配置explicit proxy使用的service;

  f.

  配置explicit policy;

  g.

  配置RADIUS验证用户,方便权限管理;

  ——————————————————————————–

  ——————————————————————————–

  环境信息:

  FortiGate 200D;

  FortiOS 5.2;

  使用56789作为explicit proxy的服务端口;

  使用windows Active Directory,通过windows NPS设置RADIUS server验证用户;

  以下是具体的配置过程:

  1.

  启用Explicit feature,启用后的效果如下图:

  a.

  通过web登录FW进行GUI配置;

  b.

  System->Config->Features;

  c.

  启用basic features中的WAN Opt. & Cache;

  d.

  启用Security features中的Explicit Proxy;

[配置]飞塔防火墙之Explicit Proxy

  2.

  配置Explicit Proxy使用的服务端口,如下图所示;

  a.

  依次展开system->Network->Explicit proxy

  b.

  在Enable web explicit proxy项目中勾选HTTP/HTTPS;

  c.

  在HTTP端口中输入56789;

  d.

  在HTTPS端口保持默认设置0;

  e.

  在Realm一栏,输入你想要提示窗口中显示的文字,如“Please enter your domain credentials”;

  f.

  该页面其他选项保持默认即可;

[配置]飞塔防火墙之Explicit Proxy

  3.

  选择监听explicit proxy请求的interface;

  i.

  笔者这里为LAN网络;

  ii.

  双击LAN;

  iii.

  勾选enable explicit web proxy;

  iv.

  其他的interface中同理进行勾选;

  A.

  笔者这里将explicit proxy设置在国外HQ,国内的网络和HQ通过LAN-2-LAN VPN连接,所以我需要将这个LAN-2-LAN VPN的interface启用explicit web proxy;

  a.

  可以直接在上一步界面点击listen on interfaces右侧的编辑按钮,或者system->Network->Interfaces;

  b.

  首先将本地网络启用explicit proxy feature,这是必须的一步;

  c.

[配置]飞塔防火墙之Explicit Proxy 

  4.

  配置explicit web proxy使用的service;

  i.

  允许任何服务的请求;

  ii.

  仅响应目的端口为80和443的请求;

  iii.

  允许所有协议请求;

  iv.

  允许向任何目的端口的请求;

  a.

  笔者这里做了个实验,测试了仅开放向internet转发目的端端口为80和443端口的请求,以提高安全性,但具体安全性如何还不了解;

  b.

  系统默认的webproxy服务一般是这两点:

  c.

  笔者定义了两个服务:

  d.

  下图的service名为webproxy-80,service type为explicit proxy,这点需要注意。目的端的端口填写80。同理再新建一个service,端口设置为443即可;

[配置]飞塔防火墙之Explicit Proxy

  配置Explicit web proxy的用户组:

  a.

  这里希望大家已经在Active Directory中建立好了响应的用户组,笔者的用户组的名称为ProxyUser_CN,并且将需要使用explicit web proxy的用户都加入了该组;

  b.

  然后需要指定RADIUS的相关信息;

  i.

  system->User & Device->Authentication->RADIUS servers;

  ii.

  新建一个RADIUS server,为这个RADIUS取个名字,输入RADIUS服务器的FQDN或者是IP地址;

  iii.

  输入您在RADIUS服务器中设置的secret,这里笔者推荐您使用windows NPS自带的secret生成器生成的长度为64bit的高复杂度secret,并且妥善保存;

  iv.

  其他项目不变,点击ok即可;

  c.

  System->User & Device->User->User Groups

  i.

  新建一个User group,为该group命名;

  ii.

  type为Firewall;

  iii.

  添加remote server为我们上一步新建的RADIUS server;

  iv.

  其他项目保持不变,保存设置即可;

  配置Explicit policy,这里是整个配置过程的一个特别需要注意过程。并不是因为这个过程有多难或多不好理解,而是因为这里通过GUI无法完成配置,因为通过FW本身的GUI节目无法配置policy需要使用的服务。笔者曾将这个问题作为一个bug提交给客服,但support给的回复是配置service的开关是隐藏功能,仅仅能通过cli进行配置。笔者对这个回答并不买账,原因是如果您用Forti Manager的话,通过Forti Manager的管理界面就可以在GUI下配置该policy需要使用的service。

  a.

  具体的配置过程,大家可以参考官方的文档介绍,我这里将我配置的命令粘贴如下,供大家参考:

  b.

  FW # config firewall explicit-proxy-policy

  FW (explicit-proxy-p~icy) # edit 0

  new entry '0' added

  FW (0) # set proxy web

  FW (0) # set dstintf wan1

  FW (0) # set srcaddr 需要使用proxy的网络地址

  FW (0) # set dstaddr all

  FW (0) # set action accept

  FW (0) # set service webproxy-80 webproxy-443 这里是我们上一步建立的两个service。就是这条在FortiOS 5.2中无法通过GUI实现;

  FW (0) # set webcache enable

  FW (0) # set identity-based enable

  FW (0) # set ip-based disable

  FW (0) # set active-auth-method basic

  FW (0) # config identity-based-policy

  FW (identity-based-p~icy) # edit 0

  new entry '0' added

  FW (0) # set groups 您定义的AD组的名称;

  FW (0) # set schedule always

  FW (0) # set utm-status enable,非必要条目

  FW (0) # set webfilter-profile 您自定义的策略,本条非必要;

  FW (0) # set profile-protocol-options default ,非必要条目;

  FW (0) # end

  FW (0) # end

  到这里FW端的配置工作就基本结束了,剩下的就是测试FW和RADIUS之间的连接性。这里笔者建议大家通过cli进行测试,测试命令为:diagnose test authserver radius radius-name authentication-protocol username password关于配置Windows NPS作为Explicit web proxy的RADIUS服务器的过程,由于这个过程适用于Fortigate防火墙的很多功能的验证,我们稍后单独写一篇文章,敬请期待。

   文章来源:http://yinzi7.blog.51cto.com/299508/1596415

 

上一篇:安卓防火墙 PS DroidWall

下一篇:撞库攻击:一场需要用户参与的持久战