首页 理论教育计算机网络技术中的重要防火墙应用与分类

计算机网络技术中的重要防火墙应用与分类

【摘要】:防火墙是近年来保护计算机网络安全的重要技术性措施之一。目前,防火墙已经得到广泛的应用。防火墙具有“阻止”和“允许”两个功能。图10.4防火墙在互联网中的位置防火墙的种类根据防火墙的工作原理一般可以将防火墙分为包过滤防火墙、状态检测防火墙、应用层防火墙等。目前,大多数较低档的硬件防火墙和具备ACL 功能的路由器属于包过滤防火墙,较高档的硬件防火墙属于状态检测防火墙。

防火墙是近年来保护计算机网络安全的重要技术性措施之一。它是一种隔离控制技术,可以在不同网域之间设置屏障,阻止对信息资源的非法访问,也可以阻止重要信息从企业的网络上被非法输出。目前,防火墙已经得到广泛的应用。通常,企业为了维护内部的信息系统安全,都会在企业网和互联网间设立防火墙软件,使一些来自互联网中某些具体IP 地址的访问或某类具体应用被接收或被拒绝。

(1)防火墙的概念

防火墙是位于两个或多个网络之间、执行访问控制策略的一个或一组系统,是一类防范措施的总称。防火墙通常放置在外部网络和内部网络的中间,执行网络边界的过滤封锁机制,通过边界控制强化内部网络的安全。图10.4所示为防火墙在互联网络中的位置。

防火墙具有“阻止”和“允许”两个功能。“阻止”是防火墙的主要功能,意即阻止某种类型的通信数据通过防火墙。“允许”的功能恰好相反。因此,防火墙必须具有识别通信数据类型的能力。

图10.4 防火墙在互联网中的位置

(2)防火墙的种类

根据防火墙的工作原理一般可以将防火墙分为包过滤防火墙、状态检测防火墙、应用层防火墙等。

1)包过滤防火墙

根据用户定义的网络层和传输层的过滤规则对数据进行过滤,该过滤规则一般被称为访问控制列表(Access Control List,ACL)。ACL 中可控制的规则包括源/目的IP 地址、源/目的IP 网络、源/目的TCP/UDP 端口。

包过滤防火墙过滤时只检查传输层和网络层的头部信息,不检查数据部分,虽然过滤效率高,但对应用层信息无感知,不理解应用层数据的内容,因此,无法阻止应用层的攻击行为。

2)状态检测防火墙

状态检测防火墙在包过滤防火墙的基础上,将进出网络的数据当成一个个的会话,在防火墙的核心部分建立并维护连接状态表,利用状态表跟踪每一个会话状态。状态监测对每一个包的检查不仅根据规则表,更考虑了数据包是否符合会话所处的状态,因此,提供了完整的对传输层的控制能力。

例如,通过状态检测防火墙可以区别外网主动发送到内网的数据,以及内网主机和外网主机建立TCP 连接后的返回数据,以实现不同的处理方式;状态检测防火墙还可以阻止基于TCP 三次握手漏洞的SYN-Flooding 攻击。

目前,大多数较低档的硬件防火墙和具备ACL 功能的路由器属于包过滤防火墙,较高档的硬件防火墙属于状态检测防火墙。

3)应用层防火墙

应用层防火墙工作在应用层,可以对接收的数据从低层到高层解封装并查看每一层的头部和数据部分,既可以有包过滤防火墙的功能,也可以对应用层的协议和应用程序进行控制。例如,应用层防火墙可以阻止应用层telnet 协议的使用,也可以阻止QQ 程序的数据传输(这一类程序经常变换端口,仅通过包过滤防火墙无法控制)。

应用层防火墙的功能最强大,但由于要在每一层进行解封装和头部分析,因此会影响网络性能。目前软件防火墙都是应用层防火墙,硬件防火墙也有一部分具有应用层防火墙的功能。

(3)防火墙的优点和局限性

如前所述,网络的安全性通常是以网络服务的开放性、便利性和灵活性为代价的。防火墙的隔离作用能够加强企业网的安全,在网络防御技术中具有一定的优势,具体如下:

①防火墙对企业网内部实现了集中的安全管理,能够强化网络安全策略,比分散的主机管理更经济可行。

②防火墙可以方便地监视网络的安全并报警,防止非授权用户进入内部网络。

③防火墙可以作为部署网络地址转换的地点,利用NAT 技术可以缓解地址空间的短缺,隐藏内部网的结构。

④由于网络中的所有访问都经过防火墙,因此,防火墙是记录网络访问和审计的最佳地方。

但另一方面,防火墙使企业网络和外部网络的信息交流受到阻碍,即使在防火墙上追加各种信息服务代理软件来代理企业网络与外部网络的信息交流,也增加了网络管理的开销,增长了信息传递的时间;同时,防火墙不能防范来自网络内部的攻击,不能防范不经过防火墙的攻击,也不能防止受病毒感染的文件或软件的传输。

总之,防火墙是解决企业网络安全问题的流行方案,具有简单实用的特点,并且透明度高,可以在不修改原有网络应用系统的情况下达到一定的安全要求。

(4)ACL 配置

ACL 使用包过滤技术,在路由器上读取第三层及第四层包头中的信息(如源地址、目的地址、源端口、目的端口等),根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。在ACL 的配置中,分为标准ACL、扩展ACL 和命名ACL 三种。

由于ACL 涉及的命令比较灵活,功能也很强大,为方便理解ACL 知识,首先介绍ACL 的设置原则。

1)顺序处理原则

对ACL 表项的检查按照从上而下的顺序进行,从第一行起,直到找到第一个符合条件的行为止,其余的行不再继续比较。因此,必须考虑在访问控制列表中放入语句的次序。

2)最小特权原则

对ACL 表项的设置应只给受控对象完成任务所必需的最小权限。如果没有ACL,则等于许可。一旦添加了ACL,默认在每个ACL 中最后一行为隐含拒绝。如果之前没找到一条许可语句,则包将被丢弃。

3)最靠近受控对象原则

尽量考虑将扩展的ACL 放在靠近源地址的位置上,这样创建的过滤器就不会反过来影响其他接口上的数据流。另外,应尽量使标准的ACL 也靠近目的地址。由于标准ACL 只使用源地址,如果将其靠近源地址,就会阻止报文流向其他接口。

①配置标准ACL

标准ACL 是指使用IP 数据报中的源IP 地址进行数据报的过滤,是一种最简单的ACL。它使用1 ~99 的ACL 号创建ACL。标准ACL 命令格式如下:

access-list ACL 号 permit|deny [host] IP 地址(www.chuimin.cn)

例如:

access-list 10 deny host 192.168.1.1

这条命令的作用是创建了一个ACL 号为10 的标准ACL,将所有来自主机地址为192.168.1.1 的数据包丢弃(host 可省略)。

若在上述命令中不使用主机IP 地址而使用网段,则表示此标准ACL 是对某个网段的数据包进行的过滤。

例如:

access-list 10 deny 192.168.1.0 0.0.0.255

此命令的作用为:创建了一个ACL 号为10 的标准ACL,将来自网段192.168.1.0 的数据包丢弃(Cisco 规定在ACL 中用反向掩码表示子网掩码,反向掩码为0.0.0.255 代表子网掩码为255.255.255.0)。

②配置扩展ACL

扩展ACL 不仅可以根据数据包源地址进行过滤,还可以根据目的地址、协议和端口号进行过滤。这样,用户可以根据多种因素来构建ACL(例如,允许用户访问物理LAN,但不允许使用FTP 服务),从而提高网络的安全性。扩展访问控制列表使用的ACL 号为100 ~199。扩展ACL 的命令格式如下:

access-list ACL号 permit|deny 协议 [定义过滤源主机范围][定义过滤源端口][定义过滤目的主机访问][定义过滤目的端口]

例如:

access-list 101 deny tcp any host 192.168.1.1 eq www

此命令的作用:创建了一个ACL 号为101 的扩展ACL,将所有主机访问192.168.1.1 地址WWW 服务的TCP 连接的数据包丢弃。

提示:在扩展ACL 中也可以定义过滤某个网段,也需要使用反向掩码定义IP 地址后的子网掩码。

扩展ACL 的一个好处是可以保护服务器。为了更好地向外提供服务,服务器经常暴露在公网上,易受到黑客和病毒的攻击。利用扩展ACL 可以将除了服务端口以外的其他端口都封锁掉,从而增强了网络的安全性。它的缺点是会消耗大量路由器CPU 资源。因此,在使用中经常将其简化或将多条扩展ACL 合并。

③配置命名ACL

无论是标准ACL 还是扩展ACL,当设置好ACL 规则后,若发现其中的某个表项有问题,只能删除全部ACL 信息,修改或删除一条表项会影响整个ACL 列表,这为网络管理带来繁重的负担。相对地,命名ACL 能够解决这一问题。命名ACL 允许删除ACL 中任意指定的语句,但新增的语句只能被放到ACL 的结尾。命名ACL 命令格式如下:

ip access-list standard|extended ACL名称

例如:

ip access-list standard st

此命令的作用:创建了一个名称为st 的标准命名ACL。

注:此时,名称为st 的标准命名ACL 还没有任何表项,需要进一步配置,这里省略。

④将ACL 应用到接口上

无论是哪种ACL,配置好后只是存在于路由器中,只有将其应用到接口上,才会发挥包过滤的作用。将ACL 应用到接口上的命令为:

router(config)#interface interfacex ;进入接口配置模式

router(config-if)#ip access-group ACL号in|out ;将ACL 应用到接口上

注:上述ACL 基本可以满足大部分过滤网络数据包的要求,但有时实际工作中还需要按时间进行过滤。这时,需要掌握基于时间的ACL,属于ACL 的高级技巧,读者可参阅其他资料。

【例10.2】以下ACL 语句中,含义为“允许172.168.0.0/24 网段所有PC 访问10.1.0.10 中的FTP 服务”的是( )。

A.access-list 101 deny tcp 172.168.0.0 0.0.0.255 host 10.1.0.10 eq ftp

B.access-list 101 permit tcp 172.168.0.0 0.0.0.255 host 10.1.0.10 eq ftp

C.access-list 101 deny tcp host 10.1.0.10 172.168.0.0 0.0.0.255 eq ftp

D.access-list 101 permit tcp host 10.1.0.10 172.168.0.0 0.0.0.255 eq ftp

【解析】扩展ACL 命令格式为:

access-list ACL号 permit|deny 协议 [定义过滤源主机范围][定义过滤源端口][定义过滤目的主机访问][定义过滤目的端口]

根据题意,所配置的规则为允许,因此A、C 选项可以首先可以排除,因为它们是deny。再根据题意及扩展ACL 的语法规则,答案B 符合题意。

【答案】B