ISA工作原理

 下面如图,是ISA的结构图:

ISA工作原理_第1张图片

最底层:NDIS(网络驱动接口规范),代表最底层的网络接口驱动
firewall engin(在OSI七层模型中比TCP/IP更低):处理isa防火墙上的所有通讯,对网络通讯数据包地址的筛选和地址转换(物理接口模式)
IP SRACK:(第三层所支持的所有协议.)

工作在用户模式下的放火墙服务,主要用于:
配置防火墙引擎,实现用户级身份验证,协议级筛选和应用程序筛选的,但他是通过应用程序筛选API(所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95 和Windows NT操作系统上的应用程序。)接口来调用其他的应用程序筛选器来实现应用程序筛选的
web代理筛选器 其实也只是放火墙服务中的一个应用程序筛选器,他可以通过web代理API接口来代理其他的web代理筛选器

ISA工作流程如下图:

ISA工作原理_第2张图片

ISA工作流程:


当isa防火墙接收到数据包时,首先由NDIS将数据包送往放火墙引擎,放火墙引擎根据自己所做的规则进行一个数据包级的过滤,如果规则允许,防火墙则会以内核模式将数据包送往更高层的TCP/IP(也是内核模式),如果数据包要求身份验证,那么放火墙引擎会将数据包发送用户模式的放火墙服务进行处理.当然数据包还要进行其他的筛选,那么放火墙服务会调用其他的应用程序进行筛选,当通过验证后,然后再送往TCP/IP中.**当然这些都是在内核模式(在内核模式中输出的数据是具有最高的性能的)中进行的。

关于防火墙引擎:

因为防火墙引擎工作在TCP/IP的下一层,所以无法用一些网络监视工具来对它进行监视,所以microsoft推出了一个专门的工具用来监听:FWENGMON
FWENGMON相关参数:
/c:显示活动的侦听对象:比如web代理服务,放火墙客户服务,服务发布,辅助连接(FWC;应用陈规筛选)等
/s:显示放火墙引擎上的活动连接
/allow:允许某段IP地址和ISA放火墙之间的访问,不受ISA防火墙的控制(慎重使用)!
具体语法:fwengmon.exe /c /s  fwengmon.exe /allow 10.1.1.9 10.1.1.10(客户端访问isa时,没有任何日志) 允许10.1.1.9,10.1.1.10访问isa防火墙.
将访问取消掉:fwengmon.exe /noallow

 

补充(关于IP栈):

TCP/IP协议栈组成
整个通信网络的任务,可以划分成不同的功能块,即抽象成所谓的 ” 层” 。用于互联网的协议可以比照TCP/IP参考模型进行分类。TCP/IP协议栈起始于第三层协议IP(互联网协议) 。所有这些协议都在相应的RFC文档中讨论及标准化。重要的协议在相应的RFC文档中均标记了状态: “必须“ (required) ,“推荐“ (recommended) ,“可选“ (elective) 。其它的协议还可能有“ 试验“(experimental) 或“ 历史“(historic) 的状态。


必须协议
所有的TCP/IP应用都必须实现IP和ICMP。对于一个路由器(router) 而言,有这两个协议就可以运作了,虽然从应用的角度来看,这样一个路由器 意义不大。实际的路由器一般还需要运行许多“推荐“使用的协议,以及一些其它的协议。

在几乎所有连接到互联网上的计算机上都存在的IPv4 协议出生在1981年,今天的版本和最早的版本并没有多少改变。升级版IPv6 的工作始于1995年,目的在与取代IPv4。ICMP 协议主要用于收集有关网络的信息查找错误等工作。


推荐协议
每一个应用层(TCP/IP参考模型 的最高层) 一般都会使用到两个传输层协议之一: 面向连接的TCP传输控制协议和无连接的包传输的UDP用户数据报文协议 。 其它的一些推荐协议有:

TELNET (Teletype over the Network, 网络电传) ,通过一个终端(terminal)登陆到网络(运行在TCP协议上)。
FTP (File Transfer Protocol, 文件传输协议) ,由名知义(运行在TCP协议上) 。
SMTP (Simple Mail Transfer Protocol,简单邮件传输协议) ,用来发送电子邮件(运行在TCP协议上) 。
DNS (Domain Name Service,域名服务) ,用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上) 。
ECHO (Echo Protocol, 回绕协议) ,用于查错及测量应答时间(运行在TCP和UDP协议上) 。
NTP (Network Time Protocol,网络时间协议) ,用于网络同步(运行在UDP协议上) 。
SNMP (Simple Network Management Protocol, 简单网络管理协议) ,用于网络信息的收集和网络管理。
BOOTP (Boot Protocol,启动协议) ,应用于无盘设备(运行在UDP协议上)。

可选协议
最常用的一些有

支撑万维网WWW的超文本传输协议HTTP,
动态配置IP地址的DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),
收邮件用的POP3 (Post Office Protocol, version 3, 邮局协议) ,
用于加密安全登陆用的SSH (Secure Shell,用于替代安全性差的TELNET) ,
用于动态解析以太网硬件地址的ARP (Address Resolution Protocol,地址解析协议) 。

范例: 不同计算机运行的不同协议
一个简单的路由器上可能会实现ARP, IP, ICMP, UDP, SNMP, RIP。
WWW用户端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。
一台用户电脑上还会运行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NTP。
无盘设备可能会在固件比如ROM中实现了ARP, IP, ICMP, UDP, BOOT, TFTP (均为面向数据报的协议,实现起来相对简单)。

你可能感兴趣的:(isa2004相关)