访问控制列表(俗称:防火墙)分为两类,一类是标准访问控制列表,一类是扩展访问列表。
//实现:配置标准IP访问控制列表 //原理: ACLs的全称为接入控制列表(Access Control Lists),也称为访问列表(Access Lists),俗称为防火墙,在有的文档中还称之为包过滤。ACLs通过定义一些规则对网络设备接口上的数据报文进行控制:允许通过或丢弃,从而提高网络客观理性和安全性: IP ACLs分为两种:标准IP访问列表和扩张IP访问列表,编号范围为1~99、1300~1999、100~199、2000~2699; 标准IP访问列表可以根据数据包的源IP地址定义规则,进行数据包的过滤; 扩展IP访问列表可以根据数据包的源IP、目的IP、源端口、目的端口、协议来定义规则,进行数据包的过滤; IP ACL 基于接口进行规则的应用,分为:入栈应用和出栈应用; //环境: Router01 Router02 PC01 PC02 PC03 //拓扑:如图(110426-标准IP访问控制列表配置) //配置Router01 Router01> enable Router01# configure terminal Router01(config)# interface fastEthernet 0/0 Router01(config-if)# no shutdown Router01(config-if)# ip address 192.168.1.1 255.255.255.0 Router01(config-if)# exit Router01(config)# interface fastEthernet 1/0 Router01(config-if)# no shutdown Router01(config-if)# ip address 192.168.2.1 255.255.255.0 Router01(config-if)# exit Router01(config)# interface serial 2/0 Router01(config-if)# ip address 192.168.4.1 255.255.255.0 Router01(config-if)# clock rate 64000 Router01(config-if)# no shutdown Router01(config)# ip route 192.168.3.0 255.255.255.0 192.168.4.2 Router01(config)# ip access-list standard p1d2 //命名方式创建基本访问控制列表 Router01(config-std-nacl)# permit 192.168.1.0 0.0.0.255 //允许1网段 Router01(config-std-nacl)# deny 192.168.2.0 0.0.0.255 //拒绝2网段 Router01(config)# interface serial 2/0 //进入2/0出口 Router01(config-if)# ip access-group p1d2 out //应用p1d2规则出栈 Router01# write //配置Router02 Router02> enable Router02# configure terminal Router02(config)# interface fastEthernet 0/0 Router01(config-if)# no shutdown Router02(config-if)# ip address 192.168.3.1 255.255.255.0 Router02(config-if)# exit Router01(config)# interface serial 2/0 Router02(config-if)# no shutdown Router01(config-if)# ip address 192.168.4.2 255.255.255.0 Router02(config-if)# exit Router02(config)# ip route 0.0.0.0 0.0.0.0 192.168.4.1 Router02# write //测试:(终端计算机) PC01> ping 192.168.3.101 Pinging 192.168.3.101 with 32 bytes of data: Reply from 192.168.3.101: bytes=32 time=17ms TTL=126 Reply from 192.168.3.101: bytes=32 time=14ms TTL=126 Ping statistics for 192.168.3.101: Packets: Sent = 2, Received = 2, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 14ms, Maximum = 17ms, Average = 15ms Control-C PC02> ping 192.168.3.101 Pinging 192.168.3.101 with 32 bytes of data: Reply from 192.168.2.1: Destination host unreachable. Reply from 192.168.2.1: Destination host unreachable. Reply from 192.168.2.1: Destination host unreachable. Reply from 192.168.2.1: Destination host unreachable. Ping statistics for 192.168.3.101: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), PC03> ping 192.168.1.101 Pinging 192.168.1.101 with 32 bytes of data: Reply from 192.168.1.101: bytes=32 time=16ms TTL=126 Ping statistics for 192.168.1.101: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 16ms, Maximum = 16ms, Average = 16ms Control-C
本部分包括以下内容:
扩展ACLs的语句规则
配置编号的扩展ACLs
配置命名的扩展ACLs
访问控制列表(ACLs)是一种基于包过滤的防火墙技术,它可以对接口上的数据包进行过滤,允许其通过或丢弃。
扩展访问控制列表可根据数据包的源IP地址、目的IP地址、使用的协议、用途设置过滤,根据设定的规则,允许或拒绝数据包通过。
扩展访问控制列表用编号或名字进行标识,可使用的编号是100~199、2000~2699。
扩展ACLs的语句规则 扩展访问控制列表由一系列的规则组成,每条规则用一个 permit 或 deny 关键字定义,规则的格式为:
[permit|deny] [协议] [源地址] [目的地址] [表达式]
1、permit|deny:
必需。permit 定义的是允许通过的规则,deny 定义的是拒绝通过的规则。
2、协议:
必需。指定数据包使用的网络层或传输层协议,常用的有:ip、icmp、tcp、udp。
3、源地址:
必需。指定数据包源IP的样式。有三种格式:
any 表示任意地址
host ip-address 表示单一地址
address wildcard 表示一组地址
它们的含义和标准访问控制列表的相同。
4、目的地址:
必需。指定数据包目的IP的样式。有三种格式:
any 表示任意地址
host ip-address 表示单一地址
address wildcard 表示一组地址
5、表达式:
可选。指定数据包的用途。常用格式:
eq 端口名称
eq 端口号
eq 是等于运算符,可用的运算符还有:lt(小于)、gt(大于)、neq(不等于)、range(范围)。使用range时需要给出两个端口号,其余的只要给出一个端口号。
端口名称或端口号指定了数据包的用途。
举例:
permit ip any 192.168.1.0 0.0.0.255 允许源地址为任意,目的地址为192.168.1.*的IP数据报通过。
permit tcp 172.16.0.0 0.0.255.255 host 192.168.1.5 eq ftp 允许源地址为172.16.*.*,目的地址为192.168.1.5,协议为TCP,用途为ftp的数据报通过。
deny udp host 172.16.8.10 host 192.168.1.5 eq tftp 拒绝源地址为172.16.8.10,目的地址为192.168.1.5,协议为UDP,用途为tftp的数据报通过。
deny tcp any any eq 80 允许地址任意的,使用协议为TCP,端口号为80的数据报通过。
说明:
在每个扩展ACLs中,最后一条规则隐含为 deny ip any any,它表示拒绝任何IP数据报通过。
配置编号的扩展ACLs 扩展访问控制列表有两种配置方法:编号的ACLs和命名的ACLs,以下是编号的扩展ACLs配置。
编号的扩展ACLs在全局配置模式中配置;
编号的扩展ACLs由一系列 access-list 语句组成;
属于同一个扩展ACLs的 access-list 语句使用相同的编号。
1、access-list 语句:
Ruijie(config)#access-list list-id 规则
list-id是扩展ACLs的编号,取值范围是100~199和2000~2699,同一个ACLs中的各语句编号必须相同。
规则就是前面所说的 permit 和 deny 规则。
说明:早期的系统只支持100~199的编号,2000~2699是现在的系统新增的。
注意:标准ACLs和扩展ACLs是用编号区分的,编号为1~99、1300~1999的是标准ACLs,只能使用标准ACLs的规则,编号为100~199、2000~1699的是扩展ACLs,只能使用扩展ACLs的规则。
2、包过滤的配置:
定义的ACLs必须应用在指定的接口上,才能起到包过滤的作用。
Ruijie(config)#interface interface-id
Ruijie(config-if)#ip access-group list-id in | out
interface命令指定了一个接口。
ip access-group命令指定在接口上应用的访问控制列表,list-id是访问列表的编号,in指定在输入流中进行过滤,out指定在输出流中进行过滤,两者只能指定一个。
说明:在每个接口、每个方向上只能应用一个访问列表。在一个接口的入口和出口方向上可应用不同的访问列表。
使用入口过滤和出口过滤在效果上和效率上都有所不同,应根据具体的应用合适选择。
配置举例:
Ruijie>enable Ruijie#configure terminal Ruijie(config)#access-list 100 permit tcp host 192.168.10.5 any eq www Ruijie(config)#access-list 100 deny ip host 192.168.10.5 any Ruijie(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 any Ruijie(config)#interface f0/1 Ruijie(config-if)#ip access-group 100 in 本例定义了一个扩展访问控制列表,它由4条规则组成:
①允许源IP为192.168.10.5,目的地址任意,用途为www的TCP数据包通过;
②拒绝源IP为192.168.10.5,目的地址任意的数据包通过;
③允许源IP为192.168.10.*的数据包通过;
④拒绝所有数据包通过。这句是由隐含的规则定义的。
整个配置可以解释为,在 f0/1 接口的输入流中执行包过滤,当源IP为192.168.10.5时,只有执行Web任务的数据包可以通过,当源IP为192.168.10.*(192.168.10.5除外)时,它的数据包可以通过,其余的都拒绝通过。
配置命名的扩展ACLs 扩展访问控制列表有两种配置方法:编号的ACLs和命名的ACLs,以下是命名的扩展ACLs配置。
命名的扩展ACLs用编号或名字区分各个访问列表;
命名的扩展ACLs的规则在访问列表配置模式中配置。
1、进入访问列表配置模式:
Ruijie(config)#ip access-list extended list-id | list-name
Ruijie(config-ext-nacl)#
本命令用于进入扩展访问列表的配置模式。
list-id是扩展ACLs的编号,取值范围是100~199和2000~2699。
list-name是扩展ACLs的名字,用字母、数字命名。
list-id和list-name只能指定一个,如果指定的访问列表不存在,则创建它并进入访问列表配置模式。
2、配置访问列表的规则:
Ruijie(config-ext-nacl)#permit 规则
Ruijie(config-ext-nacl)#deny 规则
规则形式参照前面的描述。
3、包过滤的配置:
把定义的ACLs应用在指定的接口上。
Ruijie(config)#interface interface-id
Ruijie(config-if)#ip access-group list-id | list-name in | out
interface命令指定了一个接口。
ip access-group命令指定在接口上应用的访问控制列表,list-id和list-name是访问列表的编号或名字,in指定在输入流中进行过滤,out指定在输出流中进行过滤,两者只能指定一个。
配置举例:
Ruijie>enable Ruijie#configure terminal Ruijie(config)#ip access-list extended els1 Ruijie(config-ext-nacl)#permit tcp host 192.168.10.5 any eq www Ruijie(config-ext-nacl)#deny ip host 192.168.10.5 any Ruijie(config-ext-nacl)#permit ip 192.168.10.0 0.0.0.255 any Ruijie(config-ext-nacl)#exit Ruijie(config)#interface f0/1 Ruijie(config-if)#ip access-group els1 in 本例和前面的例子是一样的,只是采用了命名的方式定义的。