接上( 点我前往)
ACL过滤原理
ACL表格式:
条件 | 动作 |
---|---|
XXX | permit/deny |
- ACL表配置完毕后,必须应用到接口的in或out方向上,才能生效。
每个接口都有两个方向,in或out是相对于路由器而言的。
- 一个接口的一个方向上只能应用一张表。
如果应用一张新表,前一张表将不再在该端口生效(就像门上贴上一道符另一道符会脱落),但前一张表仍然存在。
- 在所有ACL表的最后都有一条隐藏的拒绝所有条目 。
有一条始终位于最底部的 从any到any deny的条目。
- 在匹配ACL时,是严格自上而下的匹配每一条的。
匹配成功,则完成动作,没匹配成功,则继续匹配下 一条,如全部不匹配,则直接丢弃拒绝通过。
一定要注意书写的先后顺序,他也是自上而下写入的。
一个ACL编写完成后,默认情况下,不能删除某一条,也不能往中间插入新的条目,只能继续往最后追加新的条目。(命名ACL除外)
ACL命令
工作流程思路:
1)先判断要控制的数据流源和目标,并分析控制数据流的方向,进而判断ACL可以写在哪些路由器端口方向上。
2)打开那台路由器,开始编写ACL过滤规则。(最好考虑怎么写条目少,以确定最后全禁止或全允许)
3)最后将ACL表应用到某个接口的某个方向。
1、标准ACL
- 标准ACL因为只能基于源IP对包进行过滤,建议写在靠近目标端的地方。
conf t # 进入特权模式
access-list 表号 permit/deny 条件 # 编写ACL条目
表号:1-99
条件:源IP+反子网掩码
反子网掩码:0.0.0.255
0代表严格匹配,255代表不需要匹配
例如:
access-list 1 deny 192.168.1.0 0.0.0.255 # 拒绝源IP为192.168.1.0网段的流量
access-list 1 permit 0.0.0.0 255.255.255.255 # 允许所有网段
access-list 1 deny 192.168.2.1 0.0.0.0 # 拒绝一台主机/拒绝一个人
当然,指令也有简化方案:
0.0.0.0 255.255.255.255 == any
192.168.2.1 0.0.0.0 == host 192.168.2.1
2、扩展ACL
conf t
access-list 表号 permit/deny 协议 源IP 反掩码 目标IP 反掩码 [eq 端口号]
表号:100-199
协议:TCP/UDP/IP/ICMP (当写了端口号,只能写tcp或udp)
注释:ICMP协议就是ping命令所使用的协议,ICMP协议是网络探测协议,ping别人,就是生成
ICMP探测包发给对方,然后对方给我回应一个ICMP探测包,代表ping通了!
[ ]:代表可选
例如:
conf t
access-list 101 permit tcp 192.168.1.0 0.0.0.255 192.168.6.1 0.0.0.0 eq 80
access-list 101 deny ip 192.168.1.0 0.0.0.255 192.168.6.0 0.0.0.255
access-list 101 permit ip any any
3、命名ACL
- 用命名acl创建表的方法:
conf t
ip access-list extended 表名
# 开始从此编辑每一条即可,从正常条目的deny/permit开始。
# 编写完exit退出即可。
- 使用命名ACL格式可以任意删除某一条,也可以插入某一条,例如:
R1(config)#do sh ip acce # 查看所有ACL表
Extended IP access list 120
10 deny icmp any any
20 deny udp 192.168.1.0 0.0.0.255 any eq domain
30 permit ip any any
可以删除某一条,如需要删除第二条,做如下操作:
R1(config)#ip access-list extended 120 # 进入名为120的表控制模式
R1(config-ext-nacl)#no 20
R1(config-ext-nacl)#exit
结果如下:
R1(config)#do sh ip acce
Extended IP access list 120
10 deny icmp any any
30 permit ip any any
如需要插入某一条,需要在条目前加数字即可:
R1(config)#ip access-list extended 120 # 进入名为120的表控制模式
R1(config-ext-nacl)#20 deny ip 192.168.1.0 0.0.0.255 192.168.6.0 0.0.0.255
R1(config-ext-nacl)#exit
4、将ACL表应用到接口上
int f0/1 # 进入端口
ip access-group 102 in/out # 将表应用在in/out上
exit
5、查看列出所有ACL表
show ip access-list
show 系列命令只有一种工作模式