返回

网课视频

访问控制列表

利用访问控制列表可以对流过的数据包进行过滤,以防止一些可能有害的数据包通过。

访问控制列表可以配置在三层交换机或路由器上,作为简单防火墙使用。

ACL语句

访问控制列表(Access List)简称ACL,它由若干语句构成,这些语句就是过滤规则。

ACL语句的格式:

access-list 表号 permit | deny 条件

表号:同一个访问控制列表的ACL语句使用相同的表号。

处理方式:permit:允许, deny:拒绝。

条件:指定过滤数据报的条件,可包含地址、协议、端口号、访问时间等。

应用访问控制列表

定义访问控制列表后,需把它应用在设备接口上才能起作用,它会按指定的规则过滤数据报,对非法数据报进行拦截。

Switch(config)#interface 接口
Switch(config-if)#ip access-group 表号 [out | in]

取值为 out 时,表示数据报在离开设备前进行过滤。

取值为 in 时,表示数据报在进入设备时进行过滤。

省略时默认为out。

删除访问控制列表:

Switch(config)#no access-list 表号

访问控制列表只能向其末尾添加语句,如果想要修改语句,只能先删除整个访问控制列表再重新输入。

查看访问控制列表:

Switch#show access-lists [表号]

不带表号时会显示所有访问控制列表。

标准访问控制列表

标准访问控制列表只能构建简单的过滤条件,可用于构建基本访问控制。

表号取值范围:1~99

处理方式:permit-允许,deny-拒绝。

条件:地址 通配符掩码,匹配数据报中的源地址。

特殊条件可简写:any - 匹配任意地址,host 地址 - 匹配单个地址。

比如:

access-list 1 deny host 172.16.1.1
access-list 1 permit 192.168.0.0 0.0.255.255

第一句表示拒绝来自172.168.1.1的数据报通过。

第二句表示允许来自172.168.*.*的数据报通过。

配置举例:允许PC1访问服务器但不允许PC2访问

定义访问控制列表:

Switch(config)#access-list 1 permit host 192.168.2.1
Switch(config)#access-list 1 deny host 192.168.2.2

把访问控制列表应用在f0/1的out方向:

Switch(config)#interface f0/1
Switch(config-if)#ip access-group 1 out

标准访问控制列表特性:

  1. 每张访问控制列表的末尾都隐含着一句 deny any,也就是“没有被允许的默认拒绝”。
    所以,上例中的第二句可省。
  2. 访问控制列表中的语句是从上到下顺序匹配的,一旦数据报与某条ACL语句匹配,则会立即处理(允许或拒绝),列表中剩余的语句会被忽略。
    所以,语句的书写顺序非常重要。
  3. 标准访问控制列表只能指定源地址条件,不检测目的地址。
    所以,不能指定拒绝对某某的访问。
  4. 一台设备中可定义多个访问控制列表,但每个接口、每个方向只能应用一张访问控制列表。
    所以,一个接口可以在 in 方向和 out 方向分别指定访问控制列表。

关于通配符掩码

地址条件可写作 地址 通配符掩码 的形态。

通配符掩码是一个32位二进制数,取值为0的位表示需匹配,取值为1的位表示任意值。

比如:192.168.1.0 0.0.0.255 匹配的是以“192.168.1”开头的所有地址。

比如:192.168.0.0 0.0.255.255 匹配的是以“192.168”开头的所有地址。

比如:192.0.1.0 0.255.0.255 匹配的是以“192.*.1.*”格式的所有地址。

所以,通配符掩码不是子网掩码的反码,它不要求内部的0和1是连续的。

配置举例(1)

要求:允许 192.168.2.0 网络访问服务器,其它网络都不允许访问。

根据访问控制列表特性,只需指定 permit 192.168.2.0 0.0.0.255,其它默认都是拒绝。

把访问控制列表应用在三层交换机f0/1接口的out方向。

查看配置

配置举例(2)

把上例的过滤条件改为:不允许 192.168.2.0 网络访问服务器,其它都允许访问。

可以用两句实现:

Switch(config)#access-list 1 deny 192.168.2.0 0.0.0.255
Switch(config)#access-list 1 permit any

访问控制列表默认是拒绝所有,当使用拒绝规则时,后面需明确指定允许的访问,否则所有访问都会被拒绝。

注:访问控制列表的语句只能添加不能覆盖,如果想要修改它,需要先删除整个访问控制列表,再重新定义。

查看配置

扩展访问控制列表

扩展访问控制列表可以构建较复杂的过滤条件,用于对访问的精确控制。

语法:access-list 表号 permit | deny 条件

表号取值范围:100~199

处理方式:permit-允许,deny-拒绝。

条件:协议 源地址条件 目的地址条件 [运算符 端口号]

协议:匹配网络层或传输层协议,如:IP、ICMP、TCP、UDP等。

地址条件的写法:地址 通配符掩码 - 匹配指定格式的地址,any - 匹配任意地址,host 地址 - 匹配单个地址。第一个地址条件匹配源地址,第二个匹配目的地址。

匹配端口号是可选的,只有当协议指定为TCP或UDP时可指定匹配的端口号,用于限定具体的应用。

支持的运算符:lt-小于,gt-大于,eq-等于,neq-不等于。

扩展访问控制列表语句举例

允许访问目的地址为 192.168.1.1 的应用。

access-list 100 permit ip any host 192.168.1.1

当不区分应用的种类时,协议应指定为IP协议。

允许来自 192.168.*.* 的用户访问目的地址为 192.168.1.1 的应用。

access-list 100 permit ip 192.168.0.0 0.0.255.255 host 192.168.1.1

这个条件同时限定了源和目的。

允许来自 192.168.*.* 的用户访问目的地址为 192.168.1.1 的Web应用。

access-list 100 permit tcp 192.168.0.0 0.0.255.255 host 192.168.1.1 eq 80

Web应用的传输层使用TCP协议,端口号为80。这个条件限定了具体的应用。

几个常用服务:HTTP-TCP, 80,HTTPS-TCP, 443,FTP-TCP, 21,Telnet-TCP, 23,DNS-UDP, 53。

禁止对 192.168.1.1 的ping操作。

access-list 100 deny icmp any host 192.168.1.1

ping操作使用的是ICMP协议,这一句可禁止对目的主机的ping操作,不影响对它的应用的访问。

配置举例(3)

过滤条件:

只有192.168.2.0的用户可访问DNS和Web。

禁止对DNS、Web服务器执行ping操作。

所有用户可访问DHCP服务器。

查看配置

配置举例(4)

拓扑图同上,过滤条件改为:

只有192.168.2.0的用户可访问Web。

所有用户可访问DNS和DHCP服务器。

注:由于DNS和Web服务在一个服务器上,需要了用端口区分它们的访问。

查看配置

小结

访问控制列表是一种包过滤式防火墙,可用于对网络资源进行保护。

访问控制列表一般配置在连接服务器的三层交换机和边界路由器上。

访问控制列表语句的书写顺序会影响过滤效果。

首页
单元练习
返回顶部