|
IP访问控制列表类型 cisco 路由器支持两类IP ACL:
标准IP ACL--基于源地址来过滤IP数据包
扩展IP ACL--可以基于以下属性来过滤IP数据包
--源IP地址
--目的IP地址
--源TCP/UDP端口
--目的TCP/UDP端口
--ICMP和IGMP消息类型
--可选协议类型消息,用于细粒度控制
标准编号ACL格式
access-list access-list-number [deny | permit] source [source-wildcard]
access-list-number 是ACL的编号 规定了一个标准的IP协议ACL (1-99 1300-1999)
deny 丢弃所有与特定源地址相匹配的数据包
permit 允许与特定源地址相匹配的数据包穿过接口
source 规定一台主机或主机组的IP地址,检查其数据包
source-wildcard 应用于源地址的通配符掩码定义了一个源主机组,这些主机组会被检查。如果没有规定掩码,缺省掩码是0.0.0.0
例子:
config t
access-list 2 permit 36.48.0.3
access-list 2 deny 36.48.0.0 0.0.255.255
access-list 2 permit 36.0.0.0 0.255.255.255
36.0.0.0 是一个A类网络,其第二个字节规定了一个子网,子网掩码 255.255.0.0;
在通配符使用中,0代表是必须匹配的一部分地址,255代表不需要匹配的一部分地址
ACL是顺序处理,如果满足第一条,匹配过程就结束。
务必记住,最后一条是隐藏的,deny any;也就是说如果你不配置一条permit,任何数据多不允许出去。
标准IP ACL还支持以下关键字:
any --任何主机 如果用通配符标志就是0.0.0.0 255.255.255.255
host --规定一个确切的主机匹配。 如果用通配符标志0.0.0.0相同
log --对于匹配拒绝或允许语句的数据包,进行日志记录
标准命名ACL格式
config t
ip access-list standard access-list-name
access-list-name ----ACL名字
deny 36.48.0.0 0.0.255.255
permit 36.0.0.0 0.255.255.255
exit
扩展编号ACL格式
例子:
config t
access-list 103 permit tcp any 128.88.0.0 0.0.255.255 established
access-list 103 permit tcp any host 128.88.1.2 eq smtp
interface e0/0
ip access-group 103 in
ACL中有一个关键字 established,只用在TCP报文上,代表一个已经建立的连接。
务必记住,最后一条是隐藏的,deny any;也就是说如果你不配置一条permit,任何数据多不允许出去。
上面established关键字说明:如果TCP报文带有确认ACK或者重置RST位,匹配发生,这表明该数据包属于一个现有的连接。
如果ACK没有置位,而同步SYN有效,则意味网络上有人发起一次会话连接,数据包会被拒绝。
access-list access-list-number [deny |permit][protocol-number|protocol-keyword] [source source-wildcard | any | host] [destination-port][established][log|log-input]
access-list-number 是ACL的编号 规定了一个扩展的IP协议ACL (100-199 2000-2699)
deny 丢弃所有与特定源地址相匹配的数据包
permit 允许与特定源地址相匹配的数据包穿过接口
protocol-number 整数值,范围从0-255,代表一种IP协议
protocol-keyword IP协议的命令,可能是EIGRP GRE ICMP IGMP IGRP IP IPINIP NOS OFPF TCP UDP
source 规定一台主机或主机组的IP地址,检查其数据包
source-wildcard 应用于源地址的通配符掩码
source-port 规定数据包最初的来源端口,可以是实际的端口号(80)或通过名(HTTP),对于TCP和UDP数据包来说,source-port也支持这些操作符:gt(大于)lt(小于)eq(等于)neq(不等于)
destination 数据包发往的主机的和网络的IP地址
destination-wildcard 应用于目的地址的通配符掩码
destination-port 规定数据包发往的端口,可以是实际的端口号(80)或通过名(HTTP),对于TCP和UDP数据包来说,source-port也支持这些操作符:gt(大于)lt(小于)eq(等于)neq(不等于)
established (仅限于TCP) 校验是否RST或ACK置位,如果两者有一个置位,就说明数据包属于之前已经建立的一个连接。此关键字可被用来限制对某一方向的TCP响应,如果会话是从相反方向开启的。
log
log-input
any
host
扩展命名ACL格式
config t
ip access-list extended access-list-name (IOS11.2的版本不能识别命令ACL)
permit tcp any 128.88.0.0 0.0.255.255 established
permit tcp any host 128.88.1.2 eq smtp
exit
除了上述之外,扩展编号IP ACL和扩展命名IP ACL也都支持以下关键字:
icmp-type 规定ACL基于ICMP消息类型(0-255)来实施过滤
icmp-message 规定ACL基于ICMP消息符号名(例如echo-reply)来实施过滤
precedence precedence 规定ACL基于优先级名称或编号(0-7)来实施过滤
remark 用来给ACL添加注解 最多100个字符长,CISCO IOS12.0以后支持该特性
注释IP ACL条款
config t
access-list 102 remark allow traffic to file server
access-list 102 permit ip any host 128.88.1.6
remark message(不超过100个字符长)
开发ACL规则
规则1:写下来 将ACL实现的一系列要求写下来,可以很简单
规则2:建立一个开发系统 可以将配置COPY 到一个文件中去
注意:***者很喜欢获取对路由器配置开发系统或TFTP服务器的访问,因为这些地方存储有ACL,为此必须保证选择用来开发和存储路由器文件的系统是安全的。
规则3:测试 如果可能,在把ACL置于生产系统之前,应该在一个安全的环境里先进行测试。
ACL定向过滤
ACL必须应用到一个路由器的接口才能生效。用在某个接口的ACL是基于数据流方向的。
入站(IN)---ACL应用于进入路由器接口的数据流
出站(OUT)---ACL应用于离开路由器接口的数据流
将ACL应用到接口
在将ACL应用到路由器接口之前,一定要确保过滤的方向
例子
config t
interface e0/1
ip access-group 2 in
interface e0/2
ip access-group mailblock out
exit
命令行:
ip access-group {access-list-number|access-list-name}{in|out}
access-list-number ip标准编号或扩展编号ACL的编号 1-199 1300-2699
access-list-name ip标准命名或扩展命名ACL的名字 用IP ACCESS-LIST命令来规定
in --过滤入站 (流向路由器接口)数据包
out--过滤出战 (离开路由器接口)数据包
显示ACL:
en
show access-lists
命令行:
show access-list {access-list-number|access-list-name}
可以选择性用show ip interface命令来查看隶属于路由器接口的ACL。
show ip interface {type number} |
|
|
|
|
|
|