防火墙只是一个大概念称呼 ,alg叫应用网关防火墙 ALG:应用层网关(防火墙)简称“ALG”(也叫应用层防火墙或应用层代理防火墙),在windows中其进程名是alg.exe,应用层网关通常被描述为第三代防火墙。当受信任网络上的用户打算连接到不受信任网络(如Internet)上的服务时,该应用被引导至防火墙中的代理服务器。代理服务器可以毫无破绽地伪装成Internet上的真实服务器。它可以对请求进行评估,并根据一套单个网络服务的规则决定允许或拒绝该请求。WinXP Home/PRO默认安装的启动类型为手动。ALG在作为NAT穿透的应用时,因为我们知道传统的NAT不能改变应用层中的IP地址,那么一个最直接的方法就是直接改变应用层的IP地址,在得到终端的私有地址时就直接绑定其公网地址,为此后可能涉及到的互通做好准备。 1:ALG用在什么地方? ALG用于以下两种情况: a:应用协议需要创建动态连接,而创建动态连接所需的ip地址和端口是在协议内容中描述的。由于这些ip地址和端口是动态的,所以安全设备无法通过静态的过滤规则来允许或禁止这些连接,所以就需要动态创建连接。比如FTP协议。 b:应用协议的通讯两端经过了NAT设备。由于协议中携带的地址可能是私有网络地址,因此,需要在NAT设备上把它转换成因特网可以寻址的地址(或者协议两端设置了路由,这种方法只能在实验室里面用,不能在因特网上用),如果NAT设备需要支持多个客户端或服务器,端口也需要修改。修改协议内容,就需要同时修改数据包的长度,校验和等。如果数据包长度超过了MTU,数据包会被分片。2:ALG的安全问题动态连接在创建时只是对连接的部分描述(参数不完整),所以在建立真实连接时,会存在安全隐患(放大了安全设备的安全策略,有可能会创建一些未验证的连接,所以在实现ALG时,需要特别注意不要把动态连接的参数设置的过于模糊)3:ALG中的协议解析问题一般常见的ALG实现都是采用内容匹配的方法,直接在字符串中找相关的ip地址和端口。这样做的好处是实现简单,坏处是有时不能正确匹配协议。更好的办法是使用协议解析,但这样做比较复杂,如果是基于tcp的应用协议,还可能涉及到流重组的问题(无法确定包边界)。所以一般简单协议用内容匹配,复杂协议用协议解析(特别是基于udp的协议)4:哪些情况下不能用ALG如果协议内容加密,就不能使用ALG(无法解析和修改协议内容) 5:ALG相关的RFCRFC 3027描述了ALG相关的问题。防火墙技术在不停的发展。目前用的比较多的,还是二代防火墙,状态防火墙。。。主要是针对源地址、目标地址、源端口、目标端口、协议,来进行限制的,并不能深度识别应用内的问题。。比如80端口,是网页,还是迅雷下载?ALG可以识别出来。。准备的说ALg是三代防火墙的一个技术以后防火墙的趋势:ALg、IPS、AV、QOS、上网行为等。。。多合一。。。