一、ACL主要有三个功能:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.安全控制
2.流量控制
3.数据流量标识
二、基本原则:
1、 每条语句包括两部分,匹配的条件和所要执行的操作(deny/permit)
2、 按顺序匹配所有语句,只要有一条满足,则执行相应的操作,不再继续匹配
3、 如果都不匹配,那么一定匹配最后的隐含拒绝条目,思科默认的。
4、 任何条件下只给用户能满足他们需求的最小权限
5、 不要忘记把ACL应用到端口上
6、 ACL的位置,标准访问控制列表一般离目标近,扩展的一般离源近。
7、 每个接口的每个方向上只能使用一个访问控制列表。
8、 标准和扩展ACL的单条语句不能删除或修改,要删除单条语句,需要删除整个ACL.但基于命名的标准和扩展ACL,可以删除单条语句。
通配符的使用:host 192.168.2.3表示特定主机等同于192.168.2.3 <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0.0.0.0;
any表示所有的源或目标等同于0.0.0.0 255.255.255.255
三、ACL的两种基本类型:标准和扩展ACL
1、标准ACL:根据数据包的源IP地址来允许或拒绝数据包
配置命令:access-list {1-99} {permit|deny} source-ip source-wildcard [log]
说明:wildcard为反掩码,用来跟源地址一起决定那些位需要进行匹配,为1的为表示不需要进行匹配,0表示需要严格匹配; log表示有匹配时生成日志信息; 标准ACL一般用在离目的最近的地方
例:access-list 1 penmit 192.168.2.0 0.0.0.255 允许192.168.2.0网段的流量
accesslist 1 deny host 172.16.4.13 拒绝172.16.4.13主机的流量
应用到接口:
router(config-if)#ip access-group 1-99 {in|out}
2、扩展ACL:基于数据包的协议、源地址与目标地址、以及端口来对数据包控制。
命令:access-list {100-199} {permit/deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operator port] [established][log]
与接口关联: router(config-if)#ip access-group 100-199 {in|out}
例: access-list 101 permit tcp 192.168.2.0 0.0.0.255 gt 1023 host 192.168.1.2 eq 80
允许192.168.2.0网段的主机访问主机192.168.1.2的web服务
说明:gt 1023表示所有大于1023的端口,这是因为一般访问web、ftp等服务器时客户端的主机是使用一个1023以上的随机端口;established 表示允许一个已经建立的连接的流量,也就是数据包的ACK位已设置的包。
3、命名ACL
配置命令:
ip access-list {standard/extended} name
{permit/deny}source-ip source-wildcard 标准
{permit |deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operatorport] [established] [log] 扩展
与接口关联:router(config-if)#ip access-group name {in|out}
例: ip access-list extended outbound 定义一个名为outbound的命名ACL
permit tcp 192.168.2.0 0.0.0.255 gt 1023 host 192.168.1.2 eq 80
允许192.168.2.0网段的主机访问主机192.168.1.2的web服务
注意:
1、 每条访问控制列表语句包括两部分内容,匹配数据包的条件选项和所要执行的操作。
2、 命名的访问控制列表不是一个新的访问控制列表类型,它是把以序号定义的访问控制列表变成以名子定义的访问控制列表,便于理解。
四、ACL的应用
1、在VTY线路做acl,只允许以150.1.1.1为源的数据通过
R1(config)# access-list 1 permit 150.1.1.1 0.0.0.255
R1(config)#line vty 0 4
R1(config-line)#access-class 1 in
转载于:https://blog.51cto.com/566577/174414