在这节课中你将学习如何配置FortiGate以作为一个显式的web代理。
在完成这一课程之后,你将具备配置FortiGate作为一个显式的web代理的实际技能。这包括如何使用PAC文件和WPAD来在web浏览器中配置显式的代理设置,减少使用web缓存的WAN带宽,将安全策略应用于基于HTTP头的web代理通信,并对显式的web代理用户进行身份验证和监视。
web代理接收或拦截从客户机到服务器的请求。如果允许,并且如果没有可用的缓存,则web代理将客户机的请求转发给web服务器。
创建两个TCP连接:一个从客户端到web代理,另一个从web代理到服务器。
隐式web代理不需要对客户机的配置进行任何配置更改。客户端继续使用web,就像没有web代理一样。
客户端向web服务器的IP地址和端口号发送请求。web代理透明地拦截客户机的请求;也就是说,在IP层,目标地址不会改变。
这是否意味着不需要使用隐式web代理来进行配置更改?不一定。
在大多数网络配置中,传入和传出的流量都通过FortiGate进行路由。因此,所有的web浏览流量都将被隐式web代理拦截。但是,如果客户机的流量没有配置为通过FortiGate路由,那么你必须重新配置路由,以便信息包将通过FortiGate路由,而隐式web代理可以拦截它。
显式web代理与隐式web代理有什么不同?当你使用显式的web代理时,你必须配置客户端将请求发送到web代理IP地址和端口号,而不是站点的服务器。
如何配置用户的web浏览器以使用显式的web代理?
一种方法是手动设置代理IP地址和端口(浏览器设置)。在大型网络中,你可以使用Active Directory登录脚本或漫游配置文件,而不是单独配置每个计算机。
或者,你可以通过安装一个PAC文件,或者使用web代理自动发现协议(WPAD)来配置浏览器来使用显式代理。
当你通过配置web浏览器设置设置一个显式的web代理时,你必须提供代理的FQDN或IP地址和TCP端口号。你可以一次只指定一个代理地址。
如果你想要使用代理的特定目的IP地址、子网和FQDN,你可以将它们添加到一个列表中。对于这些目的地,浏览器将直接把请求发送到web服务器。
另一种配置方法使用一个标准的显式自动配置文件,称为PAC文件。一个PAC文件包含指令,告诉浏览器何时使用代理,以及使用哪个代理,这取决于目的地。
这种配置方法支持使用多个web代理服务器。
要部署PAC文件,首先必须将其安装到客户机可以访问的HTTP服务器上,你的FortiGate就可以作为PAC文件的HTTP服务器。然后,你必须使用PAC文件的URL来配置所有的浏览器。在更大的网络中,你通常不会单独做这件事,相反,你将使用你的域来定义PAC文件的URL。
一个PAC文件包含什么内容?
一个PAC文件是一个JavaScript。它确定请求是否被代理,以及代理的地址是什么。
在这个例子里:
PAC文件允许任何与example.com的连接绕过代理。
连接到10.0.0.0/24子网中的服务器,使用名为fastproxy.example.com的代理。
所有其他请求都是通过代理proxy.example.com进行的。
浏览器使用web代理自动发现协议(WPAD)来确定PAC文件所在的URL地址。
WPAD可以使用两种发现方法:基于DNS和基于DHCP。
大多数浏览器首先尝试DHCP服务器方法,如果失败了,他们会尝试DNS服务器方法。
使用DHCP方法,浏览器向DHCP服务器发送一个DHCPINFORM请求。
DHCP服务器响应PAC文件的URL。
浏览器下载PAC文件,并通过代理访问Internet。
DNS方法与DHCP方法非常相似。不同之处在于需要的PAC URL。首先,浏览器查询DNS服务器以解析FQDN wpad。
DNS服务器使用PAC文件所在的web服务器的IP地址进行应答。该方法总是使用TCP端口80和PAC文件名wpad.dat。
浏览器下载PAC文件,然后通过在PAC文件中显示的代理来访问web。
通常你可以使代理能够缓存来自web服务器的响应。
web缓存存储来自web服务器的响应。因此,当客户机重复请求时,FortiGate可以快速发送缓存的内容(响应),而不是转发请求并等待响应。这减少了带宽的使用、服务器负载和延迟。
在隐式和显式的Web代理模式中都支持Web缓存。
如果你启用了缓存,当客户端发出请求时,代理将首先检查请求的URL是否已经在内存中。
如果不是,代理将请求转发给服务器。当它响应时,FortiGate将响应存储在内存中,也就是说,它将内容添加到缓存中。另外,代理将内容的副本转发给客户机。
当客户机重复请求URL时,会发生什么情况?
FortiGate将会识别出已经被请求的URL,并将内容的副本从缓存发送到客户端。除非服务器上的内容发生了更改,否则代理不需要再次从服务器请求它。从客户的角度来看,在初始请求之后的每个响应都更快。
因为动态url不是完全相同的,并且它们的内容可以为每个客户机定制,所以它们通常不会被缓存。
考虑到缓存消耗系统资源,你是否希望所有用户都能够使用缓存?
你可以配置FortiGate的HTTP代理,只允许访问属于特定用户组的经过身份验证的用户。身份验证可以基于源IP地址或HTTP会话。
你应该如何决定使用哪一个?
基于IP的身份验证需要较少的RAM来记住经过验证的会话。但是,只有当每个用户拥有不同的IP地址时才应该使用它(并且在他们和FortiGate之间没有NAT设备)。
如果你有多个用户共享同一个IP地址,例如在NAT后面的用户,则使用基于HTTP会话的身份验证。在这种模式下,每个浏览器在请求中插入一个HTTP cookie。cookie标识用户。这种方法需要更多的RAM,因为必须记住所有的会话cookie。
当用户使用基于显示代理的用户认证时,流量会是什么样子?使用HTTP基于会话认证时,流量又会是什么样子?
如果用户连接并且请求没有任何关联的身份验证会话,那么就会对浏览器进行回复,请求登录凭证。浏览器提示用户进行身份验证,并通过存储cookie来记住经过验证的状态。
如果相同的用户稍后发出更多的请求,浏览器会自动再次发送相同的cookie。通过这个会话cookie来标识用户。用户不需要对每个请求进行身份验证,只是第一次需要。
这些步骤是将FortiGate配置为一个显式的web代理的步骤。我们将在下一个步骤中展示每个步骤的细节。
默认情况下,显式的web代理设置隐藏在GUI中。为了显示它们,可以在功能选择页面上启用显式代理。
在GUI中可以看到显式的代理设置,你可以启用和配置它们。
你可以配置TCP端口,其中代理监听、编辑和上传PAC文件,并选择默认的FortiGate,以避免与任何显式代理策略不匹配的流量。
稍后我们将讨论显式的代理策略。
在启用了全局的显式web代理之后,你必须指定代理将侦听连接的哪些接口。
下一步是创建显式的代理策略,以指定允许哪些流量和用户使用代理。显式代理的策略在不同的配置部分中配置,而不是常规的防火墙策略。
可以检查代理流量:防病毒、web过滤、应用程序控制、IPS、DLP和CASI检查等。
当代理流量与一个显式的代理策略相匹配时,FortiGate就会采取三种可能的行为之一:接受流量、拒绝它、或者在接受它之前请求身份验证。
如果你选择身份验证作为操作,你将会看到添加身份验证规则的选项。这些规则指定允许哪些用户和用户组,以及对每一个用户进行什么样的检查。
显式代理的身份验证与防火墙策略的行为方式不同。
有了显式的代理,FortiGate将不会通过尝试下一个认证规则。FortiGate总是应用与所有标准相匹配的第一个策略。它不会在第一次匹配之后对任何策略进行评估,即使对于尚未经过身份验证的用户也是如此。
在本例中,第一个代理策略与10.0.1.0/24的流量匹配。它只允许属于用户组的用户。
第二个策略允许流量,没有身份验证,只有在源地址匹配10.0.0.0/8时才允许。
有了这个配置,如果流量来自10.0.1.0/24子网,而该用户还没有经过身份验证,那么FortiGate就会提示用户进行身份验证。来自源IP地址的流量总是与第一个策略相匹配,并且在找到匹配之后,FortiGate不继续评估列表中的其他策略。因此,FortiGate永远不会为那个子网应用第二种策略,只适用于10.0.0.0/8的其余部分。
与防火墙策略一样,在创建显式代理策略时,你使用防火墙地址对象来指定源和目标。有一类地址对象仅用于显式代理:显式代理地址。
在匹配HTTP流量时,显式代理地址提供了更多的粒度。它们可以根据任何HTTP字段的内容来匹配HTTP流量。
例如,HTTP标头包括一个名为主机的字段,通常包含web服务器的FQDN。使用显式的代理地址,你可以创建与基于此目的地FQDN的流量匹配的策略,而不管目标IP地址是什么。
另一个例子是通过URL模式进行匹配。显式的代理地址可以匹配匹配regex表达式的url,而不考虑目标IP地址。
有两组明确的代理地址类型:
一组是用于在显式代理策略中用作目的地的地址类型。它们可以匹配URL模式、URL类别和HTTP主机名。
另一组是用于在显式代理策略中用作源的地址类型。它们可以匹配HTTP方法、用户代理和其他HTTP标头字段。
在这个例子中,管理员创建了一个显式的代理策略,以阻止来自学生内部子网的任何尝试,将文件上传到Fortinet网站。管理员为这个目的创建了两个显式的代理地址:
POST_From_Students地址匹配来自student_internal子网的任何HTTP POST请求。
Fortinet地址匹配任何web连接到一个包含文本字符串fortinet.com的主机名。
如果你正在使用WPAD DNS方法来配置浏览器,那么你可能需要编辑FortiGate的配置来更改默认的文件名和监听端口号。
正如我们前面所解释的,DNS方法总是假设PAC文件位于http://<FortiGate IP地址>:80/wpad.dat。
因此,如果你的客户端使用了DNS方法,你必须配置FortiGate以提供名为wpad的PAC文件。以及在80端口上监听请求。
一旦web代理工作了,你就可以监视哪些用户连接到它,也就是代理的会话表。你可以从GUI或者通过使用命令来完成这一操作:
〖diagnose wad user list〗
回顾一下我们刚刚讨论过的话题。
我们讨论了显式的web代理概念,我们还展示了如何配置和监视一个作为显式web代理的FortiGate,以及如何配置web浏览器来使用代理。根据你情况,我们解释了一些配置选择需要更多的RAM,或者特定的端口号。
飞塔技术 - 老梅子 QQ:57389522