第1 章.基于路由器的包过滤防火墙
【程序编程相关:Zone Alarm 防火墙软件全接触】 【推荐阅读:Win 2003自带防火墙的设置】1.1 包过滤防火墙的一般概念 【扩展信息:利用IP地址欺骗突破防火墙】 1.1.1 什么是包过滤防火墙 包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运.它可能会决定丢弃(drop)这个包,可能会接受(accept)这个包(让这个包通过),也可能执行其它更复杂的动作. 在linux系统下,包过滤功能是内建于核心的(作为一个核心模块,或者直接内建),同时还有一些可以运用于数据包之上的技巧,不过最常用的依然是查看包头以决定包的命运. 1.1.2 包过滤防火墙的工作层次 包过滤是一种内置于linux内核路由功能之上的防火墙类型,其防火墙工作在网络层. 1.1.3 包过滤防火墙的工作原理 (1)使用过滤器.数据包过滤用在内部主机与外部主机之间, 过滤系统是一台路由器或是一台主机.过滤系统根据过滤规则来决定是否让数据包通过.用于过滤数据包的路由器被称为过滤路由器. 数据包过滤是通过对数据包的ip头与tcp头或udp头的检查来实现的,主要信息有: * ip源地址 * ip目标地址 * 协议(tcp包.udp包与icmp包) * tcp或udp包的源端口 * tcp或udp包的目标端口 * icmp消息类型 * tcp包头中的ack位 * 数据包到达的端口 * 数据包出去的端口 在tcp/ip中,存在着一些标准的服务端口号,例如,http的端口号为80.通过屏蔽特定的端口可以禁止特定的服务.包过滤系统可以阻塞内部主机与外部主机或另外一个网络之间的连接,例如,可以阻塞一些被视为是有敌意的或不可信的主机或网络连接到内部网络中. (2)过滤器的实现.数据包过滤一般使用过滤路由器来实现,这种路由器与普通的路由器有所不同. 普通的路由器只检查数据包的目标地址,并选择一个达到目的地址的最佳路径.它处理数据包是以目标地址为基础的,存在着两种可能性:若路由器可以找到一个路径到达目标地址则发送出去;若路由器不知道如何发送数据包则通知数据包的发送者“数据包不可达”. 过滤路由器会更加仔细地检查数据包,除了决定是否有到达目标地址的路径外,还要决定是否应该发送数据包.“应该与否”是由路由器的过滤策略决定并强行执行的. 路由器的过滤策略主要有: * 拒绝来自某主机或某网段的所有连接. ... 下一页