在包过滤技术出现之前,网络管理员总是面临着这样的困境,他们必须设法拒绝那些不希望的访问连接,同时又要允许那些正常的访问连接。虽然他们有一些安全技术手段,如用户认证等,但这些手段缺乏基本的通信流量过滤的灵活性。
防火墙提供了基本的通信流量过滤能力,例如通过ACL(access control list,访问控制列表)。对于需要转发的数据包,首先获取包头信息(包括源地址、目的地址、源端口和目的端口等),然后与设定的策略进行比较,根据比较的结果对数据包进行相应的处理(允许通过或直接丢弃)。
ACL是实现包过滤的基础技术,其作用是定义报文匹配规则。当防火墙端口接收到报文后,即根据当前端口上应用的ACL规则对报文字段进行分析,在识别出特定的报文后,根据预先设定的策略允许或禁止该报文通过。
ACL除了可以做访问控制意外,还可以用来实现数据匹配,和其他模块配合完成一些特殊功能,例如NST转化、策略路由、路由策略、Qos、IPSec等。
1.ACL分类
根据ACL序号区分,ACL可以分为以下几种类型,见表2.1。
表2.1 ACL类型表
2.ACL命名
用户在创建ACL时,可以为ACL指定一个名称。每个ACL最多只能有一个名称。用户可以通过名称唯一地确定一个ACL,并对其进行相应的操作。
在创建ACL时,用户可以选择是否配置名称。ACL创建后,不允许用户修改或者删除ACL名称。
3.ACL匹配规则
一个ACL中可以包含多个规则,而每个规则都指定不同的报文匹配选项,这些规则可能存在重复或矛盾的地方,在将报文和ACL的规则进行匹配的时候,需要确定规则的匹配顺序。IPv4ACL支持两种匹配顺序:
①匹配顺序:按照用户配置规则的先后顺序进行规则匹配。
②自动顺序:按照深度优先的顺序进行规则匹配。
(1)基本ACL的深度优先顺序 判断原则如下:
①先看规则中是否带VPN实例,带VPN实例的规则优先。
②再比较源IP地址范围,源IP地址范围小(即通配符掩码中“0”位的数量多)的规则优先。
③如果源IP地址范围相同,则先配置的规则优先。
说明:
通配符掩码又称反向掩码,以点分十进制表示,并用二进制的“0”表示“匹配”,“1”表示“不关心”,这恰好与子网掩码的表示方法相反。譬如,C类子网192.168.1.0对应的子网掩码为255.255.255.0,而通配符掩码则为0.0.0.255。
(2)高级IPv4ACL的深度优先顺序 判断原则如下:
①先看规则中是否带VPN实例,带VPN实例的规则优先。
②再比较协议范围,指定了IP协议承载的协议类型的规则优先。
③如果协议范围相同,则比较源IP地址范围,源IP地址范围小的规则优先。
④如果协议范围、源IP地址范围相同,则比较目的IP地址范围,目的IP地址范围小的规则优先。
⑤如果协议范围、源IP地址范围、目的IP地址范围相同,则比较四层端口号(TCP/UDP端口号)范围,四层端口号范围小的规则优先。
⑥如果上述范围都相同,则先配置的规则优先。
(3)二层ACL的深度优先顺序 判断原则如下:
①先比较源MAC地址范围,源MAC地址范围小(即掩码中“1”位的数量多)的规则优先。
②如果源MAC地址范围相同,则比较目的MAC地址范围,目的MAC地址范围小的规则优先。
③如果源MAC地址范围、目的MAC地址范围相同,则先配置的规则优先。
(4)ACL步长 步长是设备自动为ACL规则分配编号的时候,每个相邻规则编号之间的差值。例如,如果步长设定为5,规则编号分配是按照0,5,10,15…这样的规律分配的。
当步长改变后,ACL中的规则编号会自动从0开始重新排列。例如,原来编号为5,10,15,20,命令把步长改为2后,规则编号改为0,2,4,6。
当使用命令将步长恢复为缺省值后,设备将立刻按照缺省步长调整ACL规则的编号。例如,ACL3001,步长为2,下面有4个规则,为0,2,4,6。如果此时使用命令将步长恢复为缺省值,则ACL规则编号变成为0,5,10,15,步长为5。
使用步长设定的好处是用户可以方便地在规则之间插入新的规则。例如配置好了4个规则,编号为0,5,10,15。此时如果用户希望能在第一条规则之后插入一条规则,则可以使用命令在0和5之间插入一条编号为1的规则。
另外,在定义一条ACL规则的时候,用户可以不指定规则编号,这时系统会从0开始,按照步长自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,步长是5,那么系统分配给新定义的规则的编号将是30。
4.基本ACL
基本ACL只根据源IP地址信息制定匹配规则,对报文进行相应的分析处理。基本IPv4 ACL的序号取值范围为2 000~2 999。
在图2.14所示网络中,管理员想要实现办公楼和宿舍的用户访问Internet,而实验楼的用户不允许访问。这种情况下,因为不同用户IP地址是不同,所以可以基本ACL来区别不同用户发出的数据。
办公楼用户的IP为10.1.0.0/16,当其发出数据报文到达防火端时,防火墙根据报文中的源IP地址信息,匹配所配置的基本ACL,发现动作是允许,则允许报文通过;而实验楼用户的IP地址为10.3.0.0/16,当其发出到Internet的数据报文到达防火墙时,防火墙根据报文中的源IP地址信息,匹配所配置的基本ACL,发现动作是拒绝,则丢弃报文。
5.高级ACL
高级ACL根据报文的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议的特性(例如TCP或UDP的源端口、目的端口、TCP标记、ICMP协议的消息类型、消息码等)等信息来制定规则。高级IPv4ACL的序号取值范围为3 000~3 999。高级IPv4ACL支持对3
图2.14 基本ACL
种报文优先级的分析处理:
(1)ToS(Type of Service,服务类型)优先级。(www.xing528.com)
(2)IP优先级。
(3)DSCP(differentiated services codepoint,差分服务编码点)优先级。
用户可以利用高级IPv4AC定义比基本IPv4ACL更准确、更丰富、更灵活的匹配规则。
在图2.15所示网络中,管理员想要实现财务部员工允许访问工资服务器,而其他部门员工不允许访问。这种情况下,要更精确地识别不同用户的不同数据流,可以用高级ACL来实现。
图2.15 高级ACL
财务部员工的IP地址为129.111.1.2/24,当其发出到工资服务器(120.110.1.2/24)的数据报文到达防火墙时,防火墙根据报文中的源IP与目的IP地址信息,匹配所配置的高级ACL,发现动作是允许,则允许报文通过;而其他用户发出的到工资服务(129.110.1.2/24)的数据报文则被防火墙拒绝。
6.二层ACL
二层ACL根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定匹配规则,对报文进行相应的分析处理。二层ACL的序号取值范围为4 000~4 999。
在图2.16所示网络中,管理员想要实现网络实验室主管能够访问并配置防火墙、而其他职员不能。因为某些原因(如动态获得IP),使用IP地址无法识别用户,可以用二层ACL来实现。
图2.16 二层ACL
实验室主管电脑的MAC地址为0002 -6779 -0F4C,当其发出的数据到达防火墙时,防火墙根据数据中的源MAC与目的MAC地址信息,匹配所配置的二级ACL。发现动作是允许,则允许报文通过;而其他用户发出的数据则被防火墙拒绝。
7.基于时间段的包过滤
时间段用于描述一个特殊的时间范围。用户可能有这样的需求:一些ACL规则需要在某个或某些特定时间内生效,而在其他时间段则不利用它们进行报文过滤。即通常所说的按时间段过滤,如图2.17所示。这时,用户就可以先配置一个或多个时间段。然后在相应的规则下通过时间段名称引用该时间段,这条规则只在该指定的时间段内生效,从而实现基于时间段的ACL过滤。
图2.17 基于时间段的包过滤
对时间段的配置有如下两种情况:
(1)周期时间段 采用每周的形式,例如,每周一的8:30~18:00;
(2)绝对时间段 采用从起始时间到结束时间的形式,例如,2009年1月1日0点0分~2009年12月31白24点0分。
上面的例子中,还可禁止其他部门在上班时间(8:00~18:00)期间访问工资查询服务器(IP地址为129.110.1.2),而总裁办公室(IP地址为129.111.1.2)不受限制,可以随时访问。
8.ACL在防火墙上的配置步骤
(1)在导航栏中选择“防火墙”→“ACL”,页面显示所有ACL的列表,如图2.18所示。
图2.18 ACL
(2)单击页面上的【新建】按钮,进入新建ACL的配置页面,如图2.19所示。
图2.19 新建ACL
(3)配置基本ACL规则。在导航栏中选择“防火墙”→“ACL”,在列表中找到要进行配置的基本访问控制列表ID,单击对应“操作”列中的图标,进入该基本ACL的规则显示页面,如图2.20所示。
图2.20 基本ACL规则
在该页面单击【新建】按钮,进入新建基本ACL规则的配置页面,如图2.21所示。
图2.21 新建基本ACL规则
(4)配置高级ACL规则。在导航栏中选择“防火墙”→“ACL”,在列表中找到要进行配置的高级访问控制列表ID,单击对应“操作”列中的图标,进入该高级ACL的规则显示页面,如图2.22所示。
图2.22 高级ACL规则
该页面单击【新建】按钮,进入新建高级ACL规则的配置页面,如图2.23所示。
图2.23 新建高级ACL规则
(5)配置二层ACL规则。在导航栏中选择“防火墙”→“ACL”,在列表中找到要进行配置的二层访问控制列表ID,单击对应“操作”列中的图标,进入该二层ACL的规则显示页面,如图2.24所示。
图2.24 二层ACL规则
在该页面单击【新建】按钮,进入新建二层ACL规则的配置页面,如图2.25所示。
图2.25 新建二层ACL规则
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。