前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络工程师从入门到精通-通俗易懂系列 | 访问控制列表-ACL原来还可以这样理解,果断收藏!

网络工程师从入门到精通-通俗易懂系列 | 访问控制列表-ACL原来还可以这样理解,果断收藏!

作者头像
网络技术联盟站
发布2019-08-02 16:58:43
1.1K0
发布2019-08-02 16:58:43
举报

访问控制列表-ACL

两大功能

流量控制

匹配感兴趣流量

ACL的3P规则

在每一个接口的每一个方向上,只能针对每种第三层协议应用一个ACL

· 每种协议一个 ACL :要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。

· 每个方向一个 ACL :一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL。

· 每个接口一个 ACL :一个 ACL 只能控制一个接口上的流量。

ACL的规范

· 每个接口,每个方向,每种协议,你只能设置1 个ACL。

· ACL的语句顺序决定了对数据包的控制顺序。在ACL中各项语句的放置顺序是很重要的。当路由器决定某一数据包是被转发还是被丢弃时,会按照各项语句在ACL中的顺序,根据各语句的判断条件,对数据包进行检查,一旦找到了某一匹配条件就结束比较过程,不再检查以后的其他条件判断语句

· 把最有限制性的语句放在ACL语句的首行或者语句中靠近前面的位置上,把“全部允许”或者“全部拒绝”这样的语句放在末行或接近末行,可以防止出现诸如本该拒绝(放过)的数据包被放过(拒绝)的情况。

· 你不可能从ACL 从除去1 行,除去1 行意味你将除去整个ACL。

· 默认ACL 结尾语句是deny any,所以你要记住的是在ACL 里至少要有1 条permit 语句

· 创建了ACL 后要把它应用在需要过滤的接口上,

· ACL只能过滤穿过路由器的数据流量,不能过滤由本路由器上发出的数据包。

· 在路由选择进行以前,应用在接口in方向的ACL起作用。

· 在路由选择决定以后,应用在接口out方向的ACL起作用。

标准访问控制列表

只能根据源地址做过滤

针对整个协议采取相关动作(允许或禁止)

建议将标准访问控制列表放在里目的地址近的地方,因为标准访问控制列表只能对源IP地址进行过滤

扩展访问控制列表

能根据源、目的地地址、端口号等等进行过滤

能允许或拒绝特定的协议

建议将扩展的访问控制列表放在离源IP地址近的地方,因为扩展访问控制列表可以进行更细化的一些过滤

ACL范围

ACL的入站及出站

入站

在路由选择进行以前,应用在接口in方向的ACL起作用。

当接口入方向收到一个数据包,首先检查接口是否有调用ACL:

· 没有ACL,则根据IP包头中的目的地址查路由

· 有ACL,则根据语句顺序进行匹配,如果匹配中,动作为permit,查路由

· 有ACL,则根据语句顺序进行匹配,如果匹配中,动作为deny,则丢弃

· 有ACL,则根据语句顺序进行匹配,如果一条语句都没有匹配中,最后会被被deny any匹配中,则丢弃

出站

在路由选择决定以后,应用在接口out方向的ACL起作用

· 根据IP包头中的目的地址查路由,有路由,则选择出接口,没有路由,则直接丢弃

· 根据路由查到出接口,出接口out方向是否调用ACL?

· 没有ACL,则直接从接口送出去

· 有ACL,则根据语句顺序进行匹配,如果匹配中,动作为permit,则从出接口送出去

· 有ACL,则根据语句顺序进行匹配,如果匹配中,动作为deny,则丢弃

· 有ACL,则根据语句顺序进行匹配,如果一条语句都没有匹配中,最后会被被deny any匹配中,则丢弃

ACL的匹配流程

· 根据语句顺序进行匹配,如果匹配中一条语句,则直接执行动作

· 如果第一条语句没有匹配中,则匹配第二条

· 末尾隐含deny any

通配符掩码

0 表示严格匹配

1 表示无所谓

简写1:

access-list 1 permit 192.168.1.1 0.0.0.0

代码语言:javascript
复制
access-list 1 permit host 192.168.1.1

简写2:

代码语言:javascript
复制
access-list 1 permit 0.0.0.0 255.255.255.255
access-list 1 permit any

标准ACL配置

代码语言:javascript
复制
access-list 1 deny 192.168.1.1 0.0.0.0
access-list 1 permit 0.0.0.0 255.255.255.255
!
interface e0
ip access-group 1 in

记住:“no access-list access-list-number” 将会删除整个ACL列表

配置了ACL一定要在接口下调用,否则不生效,或者接口下调用了ACL,但是全局下没有这

个ACL,也不生效

扩展ACL配置

代码语言:javascript
复制
access-list 100 deny tcp any host 192.168.2.200 eq 23
access-list 100 permit ip any any
!
interface e1
ip access-group 1 out

记住:“no access-list access-list-number” 将会删除整个ACL列表

命名标准ACL配置

代码语言:javascript
复制
ip access-list standard 1 (可以是序号,也可以是名字)
10 permit host 192.168.1.1
20 permit any

命名扩展ACL配置

代码语言:javascript
复制
ip access-list extended 100 (可以是序号,也可以是名字)
10 deny tcp any host 192.168.2.200 eq 23
20 permit ip any any

命名序列号步长默认为10

ACL语句修改

ip access-list extended 100

no 10 //删除语句10

11 deny tcp any host 192.168.2.200 eq 80 //在语句20前插入一条,序号为11

从定义ACL序列号步长:

ip access-list resequence xxxx(ACL序号或命名) 10 10 (递增数值)

ACL几个示例

· 拒绝192.168.2.0 网段,使用TCP协议,去访问其他网段的23端口

代码语言:javascript
复制
ip access-list extended 101
10 deny tcp 192.168.2.0 0.0.0.255 any eq telnet
20 permit ip any any

· 禁止所有网段访问192.168.1.1的snmp端口

代码语言:javascript
复制
ip access-list extended 110
10 deny udp any host 192.168.1.1 eq snmp
s20 permit ip any any

· 拒绝172.16.4.0 网段,使用TCP协议,去访问172.16.3.0网段的20,21端口,放行其他流量

代码语言:javascript
复制
ip access-list extended 101
10 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21
20 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20
30 permit ip any any

· 禁止172.16.0.0-172.16.255.0/24之间所有偶数子网访问192.168.1.1的80端口

代码语言:javascript
复制
ip access-list extended 101
10 deny tcp 172.16.0.0 0.0.254.255 host 192.168.1.1 eq 80
20 permit ip any any

一个练习而已,不要当真!!

· 禁止192.168.1.0网段使用 6666端口访问192.168.2.0的3389端口

代码语言:javascript
复制
ip access-list extended 101
10 deny tcp/udp 192.168.1.0 0.0.0.255 eq 6666 192.168.2.0 0.0.0.255 eq 3389

查看ACL

代码语言:javascript
复制
show run | section access-list
show ip access-lists
show ip access-lists interface vlan 10
show ip interface vlan 10
 
Vlan10 is up, line protocol is up
Outgoing access list is not set
Inbound access list is 100

限制设备管理

代码语言:javascript
复制
access-list 1 permit 192.168.1.1
access-list 1 permit 192.168.2.1
!
line vty 0 4
transport input telnet
access-class 1 in

注意事项

  • 交换机的二层接口只能调用in方向的ACL
  • 二层交换机有能力查看ACL中的匹配条件,如源目IP,端口号等等,只是是否有必要而已
  • 交换机ACL可以调用在SVI,或者三层接口上,方法与路由器三层接口一样

努力学习,勤奋工作,让青春更加光彩

再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档