CCNA2.0笔记_ACL
要点:
1、按顺序执行,一旦某条语句匹配,后续语句不再处理.
2、默认ACL 结尾语句是deny any,所以你要记住的是在ACL 里至少要有1 条permit 语句.
3、记得创建了ACL 后要把它应用在需要过滤的接口上.
4、每个接口,每个方向,每种协议,你只能设置1 个ACL(每个接口只能有一个 acl in 和一个 acl out).
5、你不可能从ACL 从除去1 行,除去1 行意味你将除去整个ACL,命名访问列表(named access lists)例外.
6、ACL 是用于过滤经过router 的数据包,它并不会过滤router 本身所产生的数据包.
7、尽可能的把IP 标准ACL 放置在离目标地址近的地方;尽可能的把IP 扩展ACL 放置在离源地址近的地方。
ACL的工作原理
•读取第三层及第四层包头中的信息
•根据预先定义好的规则对包进行过滤
ACL的两大主要功能:
•流量控制
•匹配感兴趣流量
ACL的类型:
•标准访问控制列表
–只能根据 源地址 做过滤
–针对整个协议采取相关动作(允许或禁止)
•扩展访问控制列表
–能根据 源、目的地地址、端口号 等等进行过滤
–能允许或拒绝 特定 的协议
•入站及出站
需要把ACL应用到接口上,而且还要定义过滤的方向:
1.in ACL(进方向ACL):先路由,再处理
当访问列表被应用到从接口输入的包时,那些包在被路由到输出接口之前要经过访问列表的处理。不能路由任何被拒绝的包,因为在路由之前这些包就会被丢弃掉。
2.out ACL(出方向ACL):先处理,再路由
当访问列表被应用到从接口输出的包时,那些包首先被路由到输出接口,然后在进入该接口的输出队列之前经过访问列表的处理。
•access-list
•通配符掩码
通配符和访问列表一起用来指定一台主机、一个网络、一个网络或几个网络内的某个范围
由0到255的4个8位位组组成的。0代表必须精确匹配,255代表任意,比如:172.16.30.0 0.0.0.255,它表示前3个8位位组必须精确匹配,后1个8位位组可以为任意值;
如果你想指定172.16.8.0 到172.16.15.0,则通配符掩码为0.0.7.255 (15-8=7)
表示192.168.1.0-192.168.1.31用通配符掩码网段表示为 192.168.1.0 0.0.0.31
•通配符缩写
•标准访问控制列表的配置:
access-list access-list-number {permit|deny} source [wildcard mask]
•编号选择1 – 99 以及 1300~1999之间的数字作为表号。
•通配符若无,默认0.0.0.0 (精确匹配)
•执行“no access-list access-list-number” 将会删除整个ACL列表
ip access-group access-list-number { in | out }
•在接口中应用
•应用时关联入或出站方向
•默认用于出站
标准ACL尽可能用在靠近目的地址的地方
//允许172.17.31.222通过,其他主机禁止
access-list permit host 172.17.31.222 //可以省去输入host命令 //禁止172.17.31.222通过,其他主机允许
access-list deny host 172.17.31.222 //可以省去输入host命令
access-list permit any //允许172.17.31.0/24通过,其他主机禁止
access-list permit 172.17.31.0 0.0.0.255 //禁止172.17.31.0/24通过,其他主机允许
access-list deny 172.17.31.0 0.0.0.255
access-list permit any
举例:
要求:销售部不允许访问金融部,但允许访问市场部和Internet:
(config)#access-list 10 deny 172.16.40.0 0.0.0.255
(config)#access-list 10 permit any
(config)#interface E1
(config-if)#ip access-group 10 out //尽量把标准ACL放在离目标近的地方,所以应用在E1口,方向为out.
禁止172.16.4.0/24网段中除172.16.4.13这台服务器访问172.16.3.0/24的计算机
(config)#access-list 1 permit host 172.16.4.13 //允许172.16.4.13的数据包通过
(config)#int e 0 //进入E0端口(因为标准ACL尽量放在离目标地址近的地方)
(config-if)#ip access-group 1 out //应用到接口E0的出方向
禁止172.16.4.13对172.16.3.0/24网段的访问,而172.16.4.0/24中的其他计算机可以正常访问。
(config)#access-list 1 deny host 172.16.4.13 //禁止172.16.4.13的数据包通过
(config)#access-list 1 permit any //允许其他所有计算机数据包通过
(config)#int e 0 //进入E0端口
(config-if)#ip access-group 1 out //将ACL1宣告,同理可以进入E1端口后使用ip access-group 1 in来完成宣告
•扩展访问控制列表的配置:
access-list access-list-number {permit | deny} protocol source source-wildcard [operator port] destination destination-wildcard [operator port] //中文: access-list ACL号 [permit|deny] [协议] [定义源主机范围][定义源端口][ 定义目的主机范围] [定义目的端口]
•编号选择100 – 199 以及 2000~2699之间的数字作为表号。
•执行“no access-list access-list-number” 将会删除整个ACL列表
ip access-group access-list-number { in | out }
•在接口中应用
•应用时关联入或出站方向
[operator port]
扩展ACL尽可能用在靠近源地址的地方
举例:
禁止172.16.3.0的计算机访问172.16.4.0的计算机,惟独可以访问172.16.4.13上的WEB服务
(config)#access-list 101 permit tcp any host 172.16.4.13 eq www //设置ACL101,容许源地址为任意IP,目的地址为主机172.16.4.13的80端口即web服务
(config)#int e 0 //进入E0端口(因为扩展ACL尽量放在离源地址近的地方)
(config-if)#ip access-group 101 in //应用到接口E0的入方向
拒绝来自172.16.3.0去往172.16.4.0的FTP流量,允许其他所有流量
(config)#access-list 101 deny tcp 172.16.3.0 0.0.0.255 172.16.4.0 0.0.0.255 eq 21
(config)#access-list 101 permit ip any any
(config)#int e 0
(config-if)#ip access-group 101 in
拒绝来自172.16.3.5去往172.16.4.13的所有流量,允许其他所有流量
(config)#access-list 101 deny ip host 172.16.3.5 host 172.16.4.13
(config)#access-list 101 permit ip any any
(config)#int e 0
(config-if)#ip access-group 101 in
(config)#access-list 101 permit tcp host 192.168.33.3 host 172.22.242.23 eq www
(config)#access-list 101 deny tcp any host 172.22.242.23 eq www
(config)#access-list 101 permit ip any any
(config)#interface FastEthernet0/0
(config-if)ip access-group 101 in
•命名访问控制列表:
不论是标准ACL还是扩展ACL都存在一个弊端:当配置好ACL规则后,希望对某条进行修改或删除只能将整条ACL信息都删除。可以用基于名称的访问控制列表来解决这个问题。
标准命名ACL命令:
(config)#ip access-list standard name
(config-std-nacl)#{permit /deny} source-ip source-wildcard
(config-if)#ip access-group standard name { in | out }
•在接口中应用
•应用时关联入或出站方向
建立标准ACL命名为test:允许10.1.1.101和103通过,其他主机禁止
(config)#ip access-list standard test
(config-std-nacl)#permit host 10.1.1.101
(config-std-nacl)#permit host 10.1.1.103
(config)#int fa0/0
(config-if)#ip access-group test out //接口应用(靠近目标,出方向)
当需要将"permit host 10.1.1.103"删除时,非命名ACL只能删除整个ACL信息。正是因为使用了基于名称的访问控制列表,我们进入ip access-list standard test后,可使用"no permit host 10.1.1.103"删除.
命名扩展ACL命令:
(config)#ip access-list extended name
(config-ext-nacl)#{permit /deny} protocol [source-ip source-wildcard destination-ip destination-wildcard] [operator port]
ip access-group extended name { in | out }
•在接口中应用
•应用时关联入或出站方向
仅允许10.1.1.0网段的主机访问主机209.165.202.196的web服务
(config)#ip access-list extended web_only
(config-ext-nacl)#permit tcp 10.1.1.0 0.0.0.255 host 209.165.202.196 eq www
仅允许10.1.1.101访问所有主机80端口,其他所有主机禁止
(config)#ip access-list extended test01
(config-ext-nacl)#permit tcp host 10.1.1.101 any eq www
禁止所有主机访问209.165.202.197主机的23、26口,但允许访问其他端口
(config)#ip access-list extended test02
(config-ext-nacl)#deny tcp any host 209.165.202.197 eq 23
(config-ext-nacl)#deny tcp any host 209.165.202.197 eq 26
(config-ext-nacl)#permit tcp any any
接口应用(靠近源,入方向)
(config)#int fa1/0
(config-if)#ip access-group web_only in
命名ACL还有一个优点就是可以调整语句的顺序:
每新增一条语句,顺序号默认加10
例:
Router#show ip access-lists //显示ACL
Extended IP access list test
deny tcp any host 209.165.202.197 eq telnet
permit tcp any any
如果要在前面插入:
Router#conf terminal
Router(config)#ip access-list extended test
Router(config-ext-nacl)# deny tcp any host 209.165.202.197 eq
结果:
Router#show ip access-lists
Extended IP access list test
5 deny tcp any host 209.165.202.197 eq 8080
10 deny tcp any host 209.165.202.197 eq telnet
20 permit tcp any any
如果要在中间插入:
Router#conf terminal
Router(config)#ip access-list extended test
Router(config-ext-nacl)# deny tcp any host 209.165.202.197 eq
结果:
Router#show ip access-lists
Extended IP access list test
5 deny tcp any host 209.165.202.197 eq 8080
10 deny tcp any host 209.165.202.197 eq telnet
15 deny tcp any host 209.165.202.197 eq 7070
20 permit tcp any any
------------------------------------------------------------------------------------------------------------
补充:
可使用IP 标准ACL 来控制VTY 线路的访问.步骤如下:
1.创建个IP 标准ACL 来允许某些主机可以telnet
2.使用access-class 命令来应用ACL 到VTY 线路上
配置如下:
Router(config)#access-list 50 permit 172.16.10.3 //仅允许172.16.10.3访问
Router(config)#line vty 0 4 //进入VTY 线路模式
Router(config-line)#access-class 50 in //应用ACL,方向为in
一些验证ACL 的命令:
1.show access-list:显示router 上配置了的所有的ACL 信息,但是不显示哪个接口应用了哪个
ACL 的信息
2.show access-list [number]:显示具体第几号ACL 信息,也不显示哪个接口应用了这个ACL
3.show ip access-list:只显示IP 访问列表信息
4.show ip interface:显示所有接口的信息和配置的ACL 信息
5.show ip interface [接口号]:显示具体某个接口的信息和配置的ACL 信息
CCNA2.0笔记_ACL的更多相关文章
- CCNA2.0笔记_WAN技术-帧中继
帧中继 -使用虚电路进行连接: -提供面向对象的服务 -帧中继 PVC 由 DLCI 标识,PVC 的状态通过 LMI 协议报告 Frame Relay NBMA连接引起的路由协议问题: -水平 ...
- CCNA2.0笔记_WAN技术-专线
WAN拓扑 Routers.CSU/DSU.WAN switches.Core routers.Modems 使用 数据链路层协议(二层) 来建立对端连接 WAN的三种连接方式 广域网链路类型: ·V ...
- CCNA2.0笔记_NAT
NAT:园区网内的PC是私有地址,整个园区网共享一个公有IP,如果园区网内的PC不做NAT,那么在发数据包给外网的时候会出现传输问题 NAT的原理:改变IP包头,使目的地址.源地址或两个地址在包头中被 ...
- CCNA2.0笔记_OSPF v3
OSPF v3 是可以在ipv6上实现路由的一种路由协议 OSPF v2(for IPv4),OSPF v3(for IPv6)在一台路由器中互相独立运行 OSPF v3与v2有很多类似的功能: - ...
- CCNA2.0笔记_OSPF v2
OSPF(开放最短路径优先)协议概述: - 链路状态路由协议 - 无类路由协议 - 要点:RouterID.区域ID - 触发更新 .以传播 LSA 代替路由表更新 - 快速响应变更(比距离矢量路由协 ...
- CCNA2.0笔记_ipv6的EIGRP
IPv6的eigrp特征: 邻居发现 增量更新 快速收敛 负载均衡 三个表 -邻居表 -拓扑表 -路由表 配置ipv6的eigrp Router(config)#ipv6 unicast-routin ...
- CCNA2.0笔记_EIGRP
EIGRP特征: •高级距离矢量路由协议 •快速收敛——路由条目不过期,拥有备份路由 •负载均衡 •无类路由 -支持 VLSM 和不连续子网,可关闭自动汇总(建议关闭) •占用带宽小 -触发更新(当拓 ...
- CCNA2.0笔记_动态路由
动态路由协议: 向其他路由器传递路由信息 接收(学习)其他路由器的路由信息 根据收到的路由信息计算出到每个目的网络的最优路径,并由此生成并维护路由表 根据网络拓朴变化及时调整路由表,同时向其他路由器宣 ...
- CCNA2.0笔记_路由相关
路由器的工作内容 -路由器知道目标地址 -发现到达目标地址的可能的路由 -选择最佳路径(路由表) -维护路由信息 路由的来源 直连路由:直接连到路由器上的网络 -初始化情况下,路由器所知的网络,只有其 ...
随机推荐
- IDEA/Pycharm/Webstorm项目目录中的 Scratches and Consoles作用
临时的文件编辑环境,通过临时的编辑环境,你可以写一些文本内容或者一些代码片段. 参考:https://segmentfault.com/a/1190000014202363 https://www.w ...
- jQuery中,选择器既匹配开头又匹配结尾
jQuery中,选择器既匹配开头又匹配结尾的方法: [attr^=val]attr$=val [attr^=val][attr$=val]
- 在安装python的mysqlclient包时报microsoft visual c++ 14.0 is required的错误
在安装python的mysqlclient包时报microsoft visual c++ 14.0 is required的错误 pip install mysqlclient 提示报错 解决办法 ...
- JS函数节流和函数防抖问题分析
问题1:如果实现了dom拖拽功能,但是在绑定拖拽事件的时候发现每当元素稍微移动一点便触发了大量的回调函数,导致浏览器直接卡死,这个时候怎么办? 问题2:如果给一个按钮绑定了表单提交的post事件,但是 ...
- sqlite developer注册码
sqlite developer注册码网上没有找到,只有通过注册表,删除继续使用,删除注册表中 HKEY_CURRENT_USER\SharpPlus\SqliteDev.
- EffectiveJava(28)怎么利用有限制的通配符类型来提升API的灵活性
有时候,我们需要的灵活性要比不可变类型所能提供的更多.所以针对一些通用性的方法,通常用泛型代替固定的数据类型,特别是当你要将某个方法打包成Jar的时候. 结合之前的例子,我们增加尝试用有限制的通配符类 ...
- iOS_Objective-C測试
1. iOS中程序正常载入UIViewControlle时,下面四个方法哪个最先运行? A.viewVillAppear B.viewDidLoad C.viewDidAppear D.viewWil ...
- 主动通知Android系统图库进行更新
项目中遇到调用图库进行图片的选择,因为不能主动及时更新,遂实现代码调用实现主动及时更新. 废话不多刷,看代码. 方式一,发送一个广播, sendBroadcast(new Intent(Intent. ...
- GDB+GdbServer: ARM程序调试
arm-linux-gdb+gdbserver环境搭建以及远程调试 GDB+GdbServer: ARM程序调试 嵌入式arm linux环境中gdb+gdbserver调试 建立交叉调试环境 编译过 ...
- Linux下Wi-Fi配置工具2
上回说到,linux下面的Wi-Fi配置工具,说是江湖多事,风起云涌...嗯,这回是真的要动手配置了.各种麻烦啊,想死的心都有了有木有啊. 尝试用iwconfig 话说上回说用iwconfig配置Wi ...