赞
踩
ACL基于IP包头的IP地址、四层TCP/UDP头部的端口号、以及其他数据进行过滤,可以基于三层和四层做过滤。
ACL可以在路由器上配置,也可以在防火墙上配置(一般称为策略)。
access-list 表号 permit/deny 源IP或源网段 反子网掩码
。示例:
- en # 进入特权模式
- conf t # 进入全局配置模式
-
- access-list 1 deny 10.0.0.0 0.0.255.255 # 拒绝匹配10.0.0.0/16范围的IP地址
- access-list 1 deny 10.1.1.1 0.255.255.255 # 拒绝源IP为10开头的所有地址
- access-list 1 deny host 10.1.1.1 # 拒绝源IP为10.1.1.1的主机(host 可以代替反子网掩码:0.0.0.0)
- access-list 1 deny any # 拒绝所有流量
- access-list 1 permit any # 允许所有流量通过
-
- 完整的案例:(拒绝源ip为10.1.1.1和20.1.1.0网段的所有包通过,其他放行)
- conf t
- access-list 1 deny host 10.1.1.1
- access-list 1 deny 20.1.1.0 0.0.0.255
- access-list 1 permit any
access-list 表号 permit/deny 协议 源IP或源网段 反子网掩码 目标IP或目标网段 反子网掩码 [eq 端口号]
。示例:
- acc 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80 # 允许源IP为10.1.1.1访问目标IP为20.1.1.3的主机的TCP协议的80端口
- acc 100 permit icmp host 10.1.1.1 host 20.1.1.3 # 允许源IP为10.1.1.1 ping目标IP为20.1.1.3的主机
- acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 # 禁止源IP为10.1.1.1的主机访问20.1.1.0/24网段
- acc 100 permit ip any any # 允许所有流量通过
-
- # 查看ACL表:
- show ip access-list 表号 # 可以查看指定表号的ACL表,不写则查看所有表
-
- # 将ACL表应用到接口:
- int f0/x
- ip access-group 表号 in/out # 将ACL表应用于接口的入方向或出方向 (in表示进入接口的流量,out表示离开接口的流量)
- no ip access-group 表号 in/out # 从接口上移除ACL表,注意表仍然存在并可以应用于其他接口
-
- # 例如,如果要将ACL表编号为100应用到接口的进方向,可以使用以下命令:
- ip access-group 100 in
如何查看ACL表和将ACL表应用到接口的方法:
show ip access-list 表号
,可以查看指定表号的ACL表。int f0/x
进入接口配置模式,然后使用命令ip access-group 表号 in/out
将ACL表应用到接口的入方向或出方向。取消应用则使用命令no ip access-group 表号 in/out
。ACL表必须应用到接口的进或出方向才能生效。
一个接口的一个方向只能应用一张ACL表。
进还是出方向的应用取决于流量控制总方向。
ACL表严格自上而下检查每一条规则,因此要注意规则的书写顺序。
每一条ACL规则由条件和动作组成,如果某个数据包不满足某个条件,则继续检查下一条规则,只有满足条件的数据包才会执行相应的动作。
标准ACL应尽量靠近目标位置进行配置。
wencoll小原理:
一般情况下,标准ACL或扩展ACL一旦创建,无法修改或删除某一条规则,只能添加新的规则。如果想要修改或删除某一条规则,需要删除整张ACL表并重新编写。
conf t
--> no access-list 表号
命名ACL:
- en # 进入特权模式
- conf t # 进入全局配置模式
- ip access-list extended 表名 # 创建自定义的ACL表,表名为"表名"(例如:kz-80-oa)。如果表已存在,则进入该表。
- permit/deny 协议 源IP或源网段 反子网掩码 目标IP或目标网段 反子网掩码 [eq 端口号]
- # 设置一条扩展ACL过滤条目。协议指定要过滤的协议类型,源IP或源网段与反子网掩码指定源地址范围,目标IP或目标网段与反子网掩码指定目标地址范围,[eq 端口号](可选)指定端口号。
- exit # 退回上一级配置模式
- do show ip access-list 表IP # 查看ACL表的信息,表IP是可选参数,如果不指定则显示所有ACL表的信息。
IP或目标网段 反子网掩码 [eq 端口号] exit do show ip access-list 表IP(可选)
例子:
ip access-list extended kz-80-oa # 进入要删除的表kz-80-oa
no 20 # 删除ID为20的条目
exit # 退到上一级
do show ip access-list 表IP # 表IP 是可选的,不写就查看所有表
ip access-list extended kz-80-oa # 进入要修改的表kz-80-oa
15 permit tcp 192.16.0.0 0.0.255.255 host 10.1.1.1 eq 80 # 在ID为15的位置插入条目
实验要求:(使用标准ACL实现)
配置路由器端口IP命令
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/x # 进入需要配置的端口
ip add IP 子网掩码 # 配置IP,如: ip add 30.1.1.254 255.255.255.0
no shut # 开启端口
配置路由表
en # 进入特权模式
conf t # 进入全局配置模式
ip route IP 子网掩码 下一跳IP # 配置路由,这里的下一跳IP就是下一个路由器接口的IP
最后测试网络连通性,命令:ping 目标ip
配置ACL表思路,因为是使用标准的ACL只能根据源ip进行过滤,无法根据目标IP之类的过滤,又不能影响访问其他的,所以这里的ACL表最后要应用在里50网段最近路由器的出接口。
创建ACL表1
en # 进入特权模式
conf t # 进入全局配置模式
acc 1 deny 10.0.0.0 0.255.255.255 # 过滤10网段的包,只检查ip的第一位数字
acc 1 permit any # 其他放行,注意这一句放行所有如果不加,其他网段的包也会被拦截
show ip access-list 1 # 查看表1,非特权模式命令最前面要加 do
将ACL表应用到接口:
int fa1/0
ip access-group 1 out # out 接口出方向
测试
路由器回馈的错误信息是哪个接口出去的就是哪个接口回包,所以这下图中显示的是20.1.1.1回馈的错误包:“目标主机不可达”
注意:一个接口的一个方向只能应用一张表, 所以按照现在的网络规划图最好的方法是往ACL表1的过滤10网段后面加过滤40.1.1.1的条件。
但是一般情况下,标准或扩展acl一旦编写号,无法修改/删除某一条,只能不断的往后添加新的条目,如想修改或删除,只能删除整张表,重新写,所以先删除表1
en # 进入特权模式
conf t # 进入全局配置模式
no access-list 1 # 删除除指定的表
acc 1 deny 10.0.0.0 0.255.255.255 # 过滤10网段的包,只检查ip的第一位数字
acc 1 deny 40.1.1.1 0.0.0.0 # 过滤40.1.1.1的包,检查全部ip
简写:access-list 1 deny host 40.1.1.1
acc 1 permit any # 其他放行
show ip access-list 1 # 查看表1,非特权模式命令最前面要加 do
将ACL表应用到接口:
int fa1/0
ip access-group 1 out # out 接口出方向
测试
创建ACL表2
en # 进入特权模式
conf t # 进入全局配置模式
acc 2 deny 10.1.1.1 0.0.0.0 # 过滤10.1.1.1的包,检查全部IP
acc 2 permit any # 其他放行,注意这一句放行所有如果不加,其他网段的包也会被拦截
show ip access-list 2 # 查看表1,非特权模式命令最前面要加 do
将ACL表应用到接口:
int fa0/0
ip access-group 2 in # in 接口入方向,直接在第3个路由器的fa0/0接口的入方向实现拦截因为后面都是40网段的,没必要让10.1.1.1的数据数据包进入路由器
测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。