1.访问控制列表概述
访问控制列表(ACL):
读取第三层、第四层包头信息
根据预先定义好的规则对包进行过滤
2.访问控制列表的工作原理
ACL使用网络流量控制(过滤)技术,在路由器上读取网络层和传输层的报头信息。(源IP 目标IP 源端口 目标端口),通过执行ACL定义的访问规则,进行数据流量控制和过滤, 达到网络访问控制的目的。
出:以经过路由器的处理,正离开路由器接口的数据包
入:已到达路由器接口的数据包,将被路由器处理
3.访问控制列表的类型
基于源P地址过滤数据包
标准访问控制列表的访问控制列表号是1~99
基于源P地址、目的P地址、指定协议、端口和标志来过滤数据包
扩展访问控制列表的访问控制列表号是100~199
命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号
4.标准访问控制列表的配置
创建标准ACL的基本格式: access-list access-list-number { deny | permit } { 源地址 [ 源地址通配符掩码 ] | any } [ log ]
其中,access-list-number是1~99的ACL编号;deny拒绝,permit允许;log是日志选项,匹配的条目信息显示在控制台上,也可以输出到日志服务器。
例如:在某路由器R3上创建一组ACL配置如下:
R3 (config) #access-list 1 deny 12.1.1.1 拒绝R1的IP地址12.1.1.1,通配符掩码 0.0.0.0 可以省略。
R3 (config) #access-list 1 permit any 允许其余所有IP
注意:访问控制列表最后隐含一条deny any 规则;ACL从上往下匹配,规则顺序不能改变。
创建好列表后,要将ACL绑定到每个它想应用的接口才能实现访问控制功能。
例如:将上述列表应用到R3的S1/0接口,配置为:
R3 (config) #interface s1/0
R3 (config-if) #ip access-group 1 in 在接口下调用ACL 1,针对的是从s1/0接口进入路由器R3的流量
1)删除ACL:
删除编号即可删除ACL。
命令格式:R3 (config) #no access-list 1
2)取消ACL在接口的应用
命令格式:R3 (config) #int s1/0
R3 (config-if) #no ip access-group 1 in
3)编辑ACL
标准ACL不支持插入或删除一行操作,可以将现有ACL拷贝到记事本里修改,然后粘贴到路由器的命令行中。
4)查看ACL:
命令格式:R3#show access-lists
R3#show access-lists 1
注:标准ACL只能对ACL源进行限制 standard。
无论是配置标准命名ACL语句还是配置扩展命名ACL语句,都有一个可选参数Sequence-Number。Sequence-Number参数表明了配置的ACL语句在命令ACL中所处的位置,默认情况下,第一条为10,第二条为20
5.配置标准ACL实现需求
拓扑图如下所示:
配置默认路由
6.扩展ACL
R2 (config) # access-list 100 deny tcp host 12.1.1.1 host 23.1.1.3 eq Telent
R2 (config) # access-list 100 permit ip any any
解释:Telent流量使用的是TCP协议,目标端口23
因此此处拒绝TCP协议,源地址是R1,源端口任意;目标地址R3,目标端口23(配置语句中Telent表示23)。
echo 表示 echo包:echo request/rely
将列表应用于R2的S1/0接口,当数据包进入R2的时候判断,配置为:
R2 (config) # int s1/0
R2 (config) # ip access-group 100 in
Router(config)#line vty 0 4
Router(config-line)#password 123
Router(config-line)#login 用户登录时开启验证功能
Router(config-line)#exit
Router(config)#line vty 0 4
Router(config-line)#login local