ACL的基本原理
为什么要用ACL?
-
ACL的两大主要功能
流量控制
匹配感兴趣流量 -
ACL的类型
标准ACL:核对来源地址;一般允许或拒绝整个协议套件;
扩展ACL:核对来源及目的地地址;一般允许或否认特定的协议和应用;
用于识别标准和扩展ACL的两种方法:
编号的ACL使用数字来识别
命名的ACL使用描述性名称或数字来识别
标准ACL
标准访问控制列表
- 只能根据源地址做过滤
- 针对整个协议采取相关动作(允许或禁止)
扩展ACL
扩展访问控制列表
- 能根据源,目的地地址,端口号等等进行过滤
- 能允许或拒绝特定的协议
ACL配置实践
-
入站及出战
-
入方向的ACL操作
-
出方向的ACL的操作
access-list x
-
标准访问控制列表的配置
• Router(config-if)#
access-list access-list-number {permit|deny} source [wildcard mask]
• 编号选择1 – 99
• 通配符若无,默认0.0.0.0
• “no access-list access-list-number” 将会删除整个ACL列表
Router(config-if)#
ip access-group access-list-number { in | out }
• 在接口中应用
• 应用时关联入或出站方向
• 默认出站
• “no ip access-group access-list-number”可移除接口上应用的访问列表 -
通配符缩写
192.168.1.1 0.0.0.0 =host 192.168.1.1
精确匹配192.168.1.1这个IP
0.0.0.0 255.255.255.255 = any
匹配所有IP -
实例 1
只禁止A网段中的192.168.1.1访问外网,其他放行
router(config)#access-list 1deny 192.168.1.1 0.0.0.0
router(config)#access-list 1 permit 0.0.0.0 255.255.255.255
router(config)#interface e0
router(config-if)#ip access-group 1 in -
实例2
只禁止A网段中的192.168.1.1-192.168.1.30访问外网
router(config)#access-list 1 deny 192.168.1.0 0.0.0.31
router(config)#access-list 1 permit any
router(config)#interface e0
router(config-if)#access-group 1 in -
实例3
只禁止A网段中的192.168.1.1–192.168.1.30 访问B网段的服务器2.200
router(config)# access-list 100 deny ip 192.168.1.0 0.0.0.31 host 1922.168.2.200
router(config)# access-list 100 permit any
router(config)# interface e0
router(config-if) ip access-group 100 in -
实例4
-
只禁止所有用户访问B网段的服务器的Telnet服务
router(config)# access-list 100 deny tcp any host 192.168.2.200 eq 23
router(config)# access-list 100 permit ip any any
router(config)# interface e1
router(config-if)# ip access-group 100 out -
查看
Router# show access-lists {access-list number|name}
Router# show access-lists
Standard IP access listSALES
10 deny 10.1.1.0, wildcard bits 0.0.0.255
20 permit 10.3.3.1
30 permit 10.4.4.1
40 permit 10.5.5.1
Extended IP access list ENG
10 permit tcp host 10.22.22.1 any eq telnet (25 matches)
20 permit tcp host 10.33.33.1 any eq ftp
30 permit tcp host 10.44.44.1 any eq ftp-data -
总结
• 每个接口,每个方向,每种协议,你只能设置1 个ACL
• 组织好你的ACL的顺序,比如测试性的最好放在ACL 的最顶部
• 你不可能从ACL从除去1 行,除去1 行意味你将除去整个ACL,命名访问列表(named access lists)例外
• 默认ACL结尾语句是deny any,所以你要记住的是在ACL 里至少要有1 条permit 语句
• 记得创建了ACL后要把它应用在需要过滤的接口上
• ACL是用于过滤经过router 的数据包,它并不会过滤router 本身所产生的数据包
• 尽可能的把IP 标准ACL放置在离目标地址近的地方;尽可能的把IP 扩展ACL放置在离源地址近的地方