下面如图,是ISA的结构图:
最底层: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工作流程:
当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 (均为面向数据报的协议,实现起来相对简单)。