访问控制列表简称为ACL,它使用包过滤技术,在路由器上读取第三层及第四层包头中
的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,
从而达到访问控制的目的。ACL 分很多种,不同场合应用不同种类的ACL。
1. 标准ACL
标准ACL 最简单,是通过使用IP 包中的源IP 地址进行过滤,表号范围1-99 或
1300-1999;
2. 扩展ACL
扩展ACL 比标准ACL 具有更多的匹配项,功能更加强大和细化,可以针对包括协议类型、
源地址、目的地址、源端口、目的端口、TCP 连接建立等进行过滤,表号范围100-199 或
2000-2699;
3. 命名ACL
以列表名称代替列表编号来定义ACL,同样包括标准和扩展两种列表。
在访问控制列表的学习中,要特别注意以下两个术语。
1. 通配符掩码:一个32 比特位的数字字符串,它规定了当一个IP 地址与其他的IP 地
址进行比较时,该IP 地址中哪些位应该被忽略。通配符掩码中的“1”表示忽略IP 地址中
对应的位,而“0”则表示该位必须匹配。两种特殊的通配符掩码是“255.255.255.255”和
“0.0.0.0”,前者等价于关键字“any”,而后者等价于关键字“host”;
2. Inbound 和outbound:当在接口上应用访问控制列表时,用户要指明访问控制列表
是应用于流入数据还是流出数据。
总之,ACL 的应用非常广泛,它可以实现如下的功能:
1. 拒绝或允许流入(或流出)的数据流通过特定的接口;
2. 为DDR 应用定义感兴趣的数据流;
3. 过滤路由更新的内容;
4. 控制对虚拟终端的访问;
5. 提供流量控制。
本实验拒绝PC2 所在网段访问路由器R2,同时只允许主机PC3网段访问路由器R2的TELNET
服务。整个网络配置EIGRP 保证IP 的连通性。
看R2的配置:
access-list 10 deny 172.16.1.0 0.0.0.255 log
access-list 10 permit any
access-list 20 permit 172.16.3.0 0.0.0.255 log
line vty 0 4
access-class 20 in
password fuyi
login
interface FastEthernet0/0
ip address 12.1.1.2 255.255.255.0
ip access-group 10 in
duplex auto
speed auto
1-访问控制列表表项的检查按自上而下的顺序进行,并且从第一个表项开始,所以
2-必须考虑在访问控制列表中定义语句的次序;
3-路由器不对自身产生的IP 数据包进行过滤;
4-访问控制列表最后一条是隐含的拒绝所有;
5-每一个路由器接口的每一个方向,每一种协议只能创建一个ACL;
6-“access-class”命令只对标准ACL 有效。
[技巧] 用“clear access-list counters”将访问控制列表计数器清零
本实验要求只允许PC2 所在网段的主机访问路由器R2 的WWW 和TELNET 服务,并拒绝PC3 所在网段PING 路由器R2。
R1(config)#access-list 100 permit tcp 172.16.1.0 0.0.0.255 any [实际情况中不能用ANY,这里只是偷懒,应该写全R2直连网段] eq www
R1(config)#access-list 100 permit tcp 172.16.1.0 0.0.0.255 any[实际情况中不能用ANY,这里只是偷懒,应该写全R2直连网段] eq telnet
R1(config)#int f1/0
R1(config-if)#ip access-group 100 in
R3(config)#access-list 100 deny icmp 172.16.3.0 0.0.0.255 any [实际情况中不能用ANY,这里只是偷懒,应该写全R2直连网段]
R3(config)#access-list 100 permit ip any any
R3(config)#int f0/0
R3(config-if)#ip access-group 100 in
[技巧]
(1)参数“log”会生成相应的日志信息,用来记录经过ACL 入口的数据包的情况;
(2)尽量考虑将扩展的访问控制列表放在靠近过滤源的位置上,这样创建的过滤器就
不会反过来影响其它接口上的数据流。另外,尽量使标准的访问控制列表靠近目的,由于标
准访问控制列表只使用源地址,如果将其靠近源会阻止数据包流向其他端口
命名ACL 允许在标准ACL 和扩展ACL 中,使用字符串代替前面所使用的数字来表示ACL。
命名ACL 还可以被用来从某一特定的ACL中删除个别的控制条目,这样可以让网络管理员方
便地修改ACL。
R3(config)#ip access-list ?
extended Extended Access List
log-update Control access list log updates
logging Control access list logging
resequence Resequence Access List
standard Standard Access List
要求只允许PC3主机在周一到周五的每天的8:00-18:00访问路由器R2的TELNET服务
ip access-list extended TELNET
permit tcp host 172.16.3.4 host 2.2.2.2 eq telnet time-range fuyi
time-range fuyi
periodic weekdays 8:00 to 18:00
interface FastEthernet0/0
ip address 172.16.3.250 255.255.255.0
ip access-group TELNET in
R3#sh time-range
time-range entry: fuyi (inactive)
periodic weekdays 8:00 to 18:00
used in: IP ACL entry
动态ACL 是Cisco IOS 的一种安全特性,它使用户能在防火墙中临时打开一个缺口,而不会破坏其它已配置了的安全限制。
要求如果PC3所在网段想要PING通路由器R2,必须先TELNET路由器R2 (2.2.2.2)成功后才能访问
R2:
access-list 100 permit tcp host 172.16.3.4 host 2.2.2.2 eq telnet //打开TELNET 访问权限
access-list 100 permit eigrp any any
access-list 100 dynamic test timeout 120 permit ip host 172.16.3.4 host 2.2.2.2
参数timeout: Maximum time for dynamic ACL to live
R2:
R2(config)#username fuyi password fuyi
R2(config)#line vty 0 15
R2(config-line)#login local
R2(config-line)#autocommand access-enable host timeout 5
\\在一个动态ACL 中创建一个临时性的访问控制列表条目,timeout是代表这个条目存在时间
如果用参数“host”,那么临时性条目将只为用户所用的单个IP地址创建,如果不使用,那用户的整个网络都将被该临时性条目允许。
1.自反ACL 永远是permit 的;
2.自反ACL 允许高层Session 信息的IP 包过滤;
3. 利用自反ACL 可以只允许出去的流量,但是阻止从外部网络产生的向内部网络的流
量,从而可以更好地保护内部网络;
4. 自反ACL 是在有流量产生时(如出方向的流量)临时自动产生的,并且当Session
结束条目就删除;
5. 自反ACL 不是直接被应用到某个接口下的,而是嵌套在一个扩展命名访问列表下的。
要求内网可以主动访问外网,但是外网不能主动访问内网,从而有效保护内网
R2(config)#ip access-list extended ACLOUT
R2(config-ext-nacl)#permit tcp any any reflect REF //定义自反ACL
R2(config-ext-nacl)#permit udp any any reflect REF
R2(config)#ip access-list extended ACLIN
R2(config-ext-nacl)#evaluate REF //评估反射
R2(config)#int f0/1
R2(config-if)#ip access-group ACLOUT out
R2(config-if)#ip access-group ACLIN in
有内部到外部流量经过的时候,会临时自动产生一条列表.
本文出自 “Erick WAY” 博客,谢绝转载!