首页 > 代码库 > CCNP路由实验之十四 路由器的訪问控制ACL

CCNP路由实验之十四 路由器的訪问控制ACL

??

                 CCNP路由实验之十四 路由器的訪问控制ACL

ACLAccess Control List訪问控制列表 路由器接口的指令列表,用来控制port进出的数据包。ACL适用于全部的路由协议,如IPIPXAppleTalk等。这张表中包括了匹配关系、条件和查询语句,表仅仅是一个框架结构。其目的是为了对某种訪问进行控制。訪问控制列表使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址,目的地址,源port。目的port等,依据预先定义好的规则对包进行过滤。从而达到訪问控制的目的,该技术初期仅在路由器上支持。如今已经支持三层交换机和二层交换机。ACL的定义是基于每一种协议的,假设路由器接口配置成为支持三种协议(IPAppleTalk以及IPX)的情况,那么用户必须定义三种ACL来分别控制这三种协议的数据包。

  1. ACL能够限制网络流量、提高网络性能。比如,ACL能够依据数据包的协议,指定数据包的优先级。

  2. ACL提供对通信流量的控制手段。比如,ACL能够限定或简化路由更新信息的长度,从而限制通过路由器某一网段的通信流量。

  3. ACL是提供网络安全訪问的基本手段。ACL同意主机A訪问网络,而拒绝主机B訪问。

  4. ACL能够在路由器port处决定哪种类型的通信流量被转发或被堵塞。比如,用户能够同意E-mail通信流量被路由,拒绝全部的Telnet通信流量。

  5. 注意,并非越多ACL就越好。由于ACL会消耗路由器的资源,影响路由器的性能

ACL运行过程:

ACL运行顺序是从上往下运行的。一个包仅仅要遇到一条匹配的ACL语句后。就会停止兴许语句的运行.一个port运行哪条ACL,这须要依照列表中的条件语句运行顺序来推断。假设一个数据包的报头跟表中某个条件推断语句相匹配。那么后面的语句就将被忽略,不再进行检查。

数据包仅仅有在跟第一个推断条件不匹配时,它才被交给ACL中的下一个条件推断语句进行比較。假设匹配(假设为同意发送),则无论是第一条还是最后一条语句,数据都会立即发送到目的接口。

假设全部的ACL推断语句都检測完毕,仍没有匹配的语句出口,则该数据包将视为被拒绝而被丢弃。这里要注意,ACL不能对本路由器产生的数据包进行控制。假设设备使用了TCAM比方aute U3052交换机。那么全部的ACL是并行运行的。举例来说,假设一个port设定了多条ACL规则。并非逐条匹配,而是一次运行全部ACL语句。

ACL分类

  1. 标准ACL:使用 1-99 以及1300-1999之间的数字作为表号。标准ACL仅仅检查源地址,能够阻止来自某一网络的全部通信流量,或者同意来自某一特定网络的所有通信流量。或者拒绝某一协议簇(比方IP的全部通信流量。标准ACL要尽量靠近目的端

  2. 扩展ACL使用 100 ~ 199以及2000~2699之间的数字作为表号。扩展ACL通过启用基于IP源地址和目的地址、传输层协议(TCPUDP)和应用port号的过滤。您也能够使用逻辑运算,比如等于 (eq)、不等于 (neq)、大于 (gt) 和小于 (lt),这样以提供比标准ACL更仔细、更高程度的数据流选择控制

    扩展ACL要尽量靠近源端.

  3. 命名ACL是以列表名称取代列表编号来定义ACL。相同包括标准和扩展两种列表。

    命名ACL还能够被用来从某一特定的ACL中删除个别的控制条目,这样能够使网络管理员方便改动ACL

    在使用命名訪问控制列表时。要求路由器IOS11.2以上的版本号,而且不能以同一名字命名多个ACL,不同类型的ACL也不能使用相同的名字。命名ACL中的同意为每一条目加入sequnce number,这样更加简化我们改动和维护(推荐使用)。注意事实上

    标准Access-list1 等于标准命名式ip access-liststandard 1 。扩展Access-list 100等于扩展命名式ip access-list extended 100

  4. 基于时间的ACL:就是在原来的标准訪问列表和扩展訪问列表中。加入有效的时间范围来更合理有效地控制网络。首先定义一个时间范围,然后在原来的各种訪问列表的基础上应用它。要配置这种时间范围,就要通过time-range来实现的,在time-range中定义好时间,再将此time-range跟在某ACL的条目之后。那么此条目就在该时间范围内起作用,其它时间是不起作用的。在定义time-range时,经常使用的时间简单分为两种,第一种叫做绝对时间(absolute)。即这个时间仅仅生效一次,比方20149112:00。还有一种时间叫做周期时间(periodic),即这个时间是会多次反复的。比方每周一,或者每周一到周五

  5. 自反(reflexive)訪问列表基于上层会话(session)信息过滤数据包。它同意起源于内网(受保护网络)的数据流通过路由器,外网(非信任网络)响应起源于内网的会话的数据流也能够通过路由器。但禁止起源于外网的数据通过路由器进入内网。

    自反ACL仅仅使用扩展命名IP訪问列表定义,不能使用代码或标准命名訪问列表定义。 自反ACL和其它ACL类似:包括一系列条件语句。并安装条件语句的顺序逐一检查。一旦某个条件匹配。就不再检查后面的条件。

    不同的是,自反ACL仅仅包括暂时的条件语句。当一个IP会话发起时,这些暂时条件自己主动建立;当会话结束,这些暂时条件将被路由器删除。自反ACL不能直接应用在接口上,须要由还有一个扩展命名IP訪问列表调用, 另外,自反ACL不包括系统隐含的deny all 语句。自反ACL仅仅能在命名的扩展ACL里定义

  6. 动态ACL:用户必须通过提供用户名口令。开启一个到路由器telnet会话。

    (也能够配置路由器,让其仅仅须要口令。而不须要用户名,但并不推荐这样做)在用户被认证之后。路由器会自己主动关闭telnet会话,并自己主动将一个动态訪问表项置于某个訪问表中。以同意源地址为认证用户工作站地址的报文通过。这样,我们能够在安全边界上配置訪问表。仅仅同意那些能够通过用户认证的工作站才干发送向内的报文。这种配置非常像网页认证后才干上网的行为。

    注意当用户验证后。telnet就会被关闭,这样会带来一个问题。网络管理员将不能通过Telnet对路由进行管理。解决办法是使用rotary命令开启其它Telnetport,如”rotary 1″命令开启的port是3001,”rotary 2″开启3002以此类推。

ACL的原则

  1. 每种协议一个 ACL:要控制接口上的流量,必须为接口上启用的每种协议定义对应的 ACL

  2. 每一个方向一个 ACL :一个 ACL 仅仅能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL

  3. 每一个接口一个 ACL :一个 ACL 仅仅能控制一个接口上的流量

ACL定义规范

  1. ACL的列表号指出了是哪种的ACL。各种协议有自己的ACL,而每一个协议的ACL又分为标准ACL和扩展ACL。这些ACL是通过ACL列表号差别的。假设在使用一种訪问ACL时用错了列表号,那么就会出错误。

  2. 一个ACL的配置是每协议、每接口、每方向的。

    路由器的一个接口上每一种协议能够配置进方向和出方向两个ACL。也就是说,假设路由器上启用了IPIPX两种协议栈。那么路由器的一个接口上能够配置IPIPX两种协议。每种协议进出两个方向,共四个ACL

  3. ACL中的通配符,也称作反掩码。它是将原子网的掩码0变成11变成00为绝对匹配,而1为表示随意。通过这样用来进行地址块匹配的。反掩码能够通过使用255.255.255.255减去正常的子网掩码得到。当相减为0.0.0.0时表示一台主机;比如对于单一网段10.10.10.0/24的反掩码等于255.255.255.255-255.255.255.0=0.0.0.25;对于连续的网段能够先进行汇总再相减,比如192.168.32.0/24192.168.33.0/24192.168.34.0/24。此时汇总的网段为192.168.32.0/22,即255.255.255.255-255.255.252.0=0.0.3.255;另外192.168.32.0/24ACL反转掩码写成0.0.0.254表示过滤网络中的全部偶数地址,假设192.168.34.1/24ACL返掩码写成0.0.0.254即表示网络中的奇数地址。假设是网段内的特定连续的几台主机如192.168.1.17/24192.168.1.18/24192.168.1.19/24即反掩码为192.168.1.17 0.0.0.3.

  4. ACL的语句顺序决定了对数据包的控制顺序。在ACL中各描写叙述语句的放置顺序是非常重要的。当路由器决定某一数据包是被转发还是被堵塞时。会依照各项描写叙述语句在ACL中的顺序。依据各描写叙述语句的推断条件,对数据报进行检查,一旦找到了某一匹配条件就结束比較过程。不再检查以后的其它条件推断语句。

  5. 最有限制性的语句应该放在ACL语句的首行。把最有限制性的语句放在ACL语句的首行或者语句中靠近前面的位置上,把全部同意或者全部拒绝这种语句放在末行或接近末行。能够防止出现诸如本该拒绝(放过)的数据包被放过(拒绝)的情况。

  6. 对于标准或扩展ACL中新的表项仅仅能被加入到ACL的末尾,这意味着不可能改变已有訪问控制列表的功能。假设必须改变,仅仅有先删除已存在的ACL,然后创建一个新ACL,将新ACL应用到对应的接口上。

  7. 在将ACL应用到接口之前。一定要先建立ACL。首先在全局模式下建立ACL。然后把它应用在接口的出方向或进方向上。

    在接口上应用一个不存在的ACL是不可能的。

  8. 标准和扩展的ACL语句不能被逐条的删除,仅仅能一次性删除整个ACL

    命名式ACL能够

  9. ACL的最后。有一条隐含的全部拒绝的命令,所以在 ACL里一定至少有一条同意的语句。

  10. ACL仅仅能过滤穿过路由器的数据流量,不能过滤由本路由器上发出的数据包。

  11. 路由器选择进行曾经,应用在接口进入方向的ACL起作用。

  12. 路由器选择决定以后,应用在接口离开方向的ACL起作用。

 

 

 

 

实验一、标准ACL

技术分享

PC1配置:

PC1#conf t

PC1(config)#no ip routing

PC1(config)#int fa0/0

PC1(config-if)#ip add192.168.1.1 255.255.255.0

PC1(config-if)#no sh

PC1(config-if)#exit

PC1(config)#ip default-gateway192.168.1.11

 

PC2配置:

PC2#conf t

PC2(config)#no ip routing

PC2(config)#ip default-gateway192.168.2.22

PC2(config)#int fa0/0

PC2(config-if)#ip add192.168.2.2 255.255.255.0

PC2(config-if)#no sh

PC2(config-if)#exit

 

R1配置:

R1#conf t

R1(config)#int lo 1

R1(config-if)#ip add 1.1.1.1255.255.255.0

R1(config-if)#exit

R1(config)#int fa0/0

R1(config-if)#ip add192.168.12.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#int fa0/1

R1(config-if)#ip add192.168.1.11 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#access-list 1 deny2.2.2.0 0.0.0.255 //创建ACL 1拒绝全部2.2.2.0网段的流量

R1(config)#access-list 1 permitany//设置ACL 1放行其它流量

R1(config)#int fa0/0

R1(config-if)#ip access-group 1in //ACL 1放在接口的进方向

R1(config-if)#exit

R1(config)#router rip

R1(config-router)#version 2

R1(config-router)#noauto-summary

R1(config-router)#network1.1.1.0

R1(config-router)#net192.168.1.0

R1(config-router)#net192.168.12.0

R1(config-router)#exit

 

 

R2配置:

R2#conf t

R2(config)#int lo 1

R2(config-if)#ip add 2.2.2.2255.255.255.0

R2(config-if)#exit

R2(config)#int fa0/0

R2(config-if)#ip add192.168.12.2 255.255.255.0

R2(config-if)#no sh

R2(config-if)#exit

R2(config)#int fa0/1

R2(config-if)#ip add192.168.2.22 255.255.255.0

R2(config-if)#no sh

R2(config-if)#exit

R2(config)#router rip

R2(config-router)#version 2

R2(config-router)#noauto-summary

R2(config-router)#net 2.2.2.0

R2(config-router)#net 192.168.2.0

R2(config-router)#net192.168.12.0

R2(config-router)#exit

R2(config)#int fa0/0

R2(config-if)#ip access-group 1in

R2(config-if)#exit

 

检查測试:

PC1#ping 192.168.2.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 192.168.2.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent(5/5), round-trip min/avg/max = 60/96/192 ms

 

PC1#ping 2.2.2.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 2.2.2.2, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

 

 

R2#ping 192.168.1.1 source2.2.2.2 //2.2.2.0网段被R1fa0/0接口掉弃

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 192.168.1.1, timeout is 2 seconds:

Packet sent with a sourceaddress of 2.2.2.2

UUUUU

Success rate is 0 percent (0/5)

 

R1#debug ip packet

IP packet debugging is on

*Mar  1 00:03:42.039: IP: s=2.2.2.2(FastEthernet0/0), d=192.168.1.1, len 100, access denied

*Mar  1 00:03:42.047: IP: tableid=0, s=192.168.12.1(local), d=2.2.2.2 (FastEthernet0/0), routed via FIB

*Mar  1 00:03:42.047: IP: s=192.168.12.1 (local),d=2.2.2.2 (FastEthernet0/0), len 56, sending

*Mar  1 00:03:42.175: IP: s=2.2.2.2(FastEthernet0/0), d=192.168.1.1, len 100, access denied

*Mar  1 00:03:42.179: IP: tableid=0, s=192.168.12.1(local), d=2.2.2.2 (FastEthernet0/0), routed via FIB

*Mar  1 00:03:42.183: IP: s=192.168.12.1 (local),d=2.2.2.2 (FastEthernet0/0), len 56, sending

*Mar  1 00:03:42.255: IP: s=2.2.2.2(FastEthernet0/0), d=192.168.1.1, len 100, access denied

 

 

 

 

实验二、扩展ACL

技术分享

PC1配置:

PC1#conf t

PC1(config)#no ip routing

PC1(config)#ip default-gateway192.168.0.1

PC1(config)#int fa0/0

PC1(config-if)#ip add192.168.0.2 255.255.255.0

PC1(config-if)#no sh

PC1(config-if)#exit

 

R1配置:

R1#conf t

R1(config)#int fa0/0

R1(config-if)#ip add192.168.0.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#int fa0/1

R1(config-if)#ip add202.100.100.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

 

Server配置:

Server(config)#username ciscoprivilege 15 password cisco

Server(config)#line vty 0 4

Server(config-line)#login local

Server(config-line)#exit

Server(config)#ip http server

Server(config)#int fa0/1

Server(config-if)#ip add202.100.100.80 255.255.255.0

Server(config-if)#no sh

Server(config-if)#exit

Server(config)#ip route 0.0.0.00.0.0.0 202.100.100.1

Server(config)#access-list 100permit tcp any 202.100.100.80 0.0.0.0 eq www

Server(config)# access-list 100permit tcp host 192.168.0.254 host 202.100.100.80 eq 23

Server(config)#access-list 100deny  ip any any

erver(config)#int fa0/1

Server(config-if)#ipaccess-group 100 in

Server(config-if)#exit

 

測试检查:

PC1#ping 202.100.100.80 //拒绝telnetweb之外的一起流量进入

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 202.100.100.80, timeout is 2 seconds:

UUUUU

Success rate is 0 percent (0/5)

PC1#telnet 202.100.100.80 //仅仅同意192.168.0.254的主机telnet到服务器上

Trying 202.100.100.80 ...

% Destination unreachable;gateway or host down

 

PC1#telnet 202.100.100.80 80 //能够訪问站点port80www

Trying 202.100.100.80, 80 ...Open

HTTP/1.1 400 Bad Request

Date: Fri, 01 Mar 2002 00:22:11GMT

Server: cisco-IOS

Accept-Ranges: none

400 Bad Request

[Connection to 202.100.100.80closed by foreign host]

 

 

 

 

实验三、命名式的ACL

技术分享

PC1配置:

PC1#conf t

PC1(config)#no ip routing

PC1(config)#int fa0/0

PC1(config-if)#ip add192.168.1.100 255.255.255.0

PC1(config-if)#no sh

PC1(config-if)#exit

PC1(config)#ip default-gateway192.168.1.1

 

PC2配置:

PC2#conf t

PC2(config)#int fa0/0

PC2(config-if)#ip add172.168.2.22 255.255.255.0

PC2(config-if)#no sh

PC2(config-if)#exit

PC2(config)#ip route 0.0.0.00.0.0.0 172.168.2.1

 

Server配置:

Server#conf t

Server(config)#int fa0/0

Server(config-if)#ip add202.100.100.100 255.255.255.0

Server(config-if)#no sh

Server(config-if)#exit

Server(config)#ip route 0.0.0.00.0.0.0 202.100.100.1

Server(config)#username ciscoprivilege 15 password cisco

Server(config)#line vty 0 4

Server(config-line)#login local

Server(config-line)#exit

Server(config)#ip http server

 

R1配置:

R1#conf t

R1(config)#int fa0/0

R1(config-if)#ip add192.168.1.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#int fa0/1

R1(config-if)#ip add202.100.100.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#int fa1/0

R1(config-if)#ip add 172.168.2.1255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#ip access-liststandard pc1-to-pc2 //创建一条pc1pc2的标准命名ACL

 R1(config-std-nacl)#10 deny 192.168.1.00.0.0.255 log//拒绝pc1的訪问

R1(config-std-nacl)#20 permitany //其它流量全部同意

R1(config-std-nacl)#exit

R1(config)#ip access-listextended client-to-server //创建一条客户端到服务器的扩展命名ACL

R1(config-ext-nacl)#10 permittcp any host 202.100.100.100 eq 80//全部主机能够訪问服务器的80

R1(config-ext-nacl)# 20 permittcp 172.168.2.0 0.0.0.255 host 202.100.100.100 eq 23 //仅仅同意172.168.2.0能够telnet设备。

R1(config-ext-nacl)#30 deny ipany any //其它流量全部掉弃

R1(config-ext-nacl)#exit

R1(config)#int fa1/0

R1(config-if)#ip access-grouppc1-to-pc2 out //pc1-to-pc2应用到fa1/0的出方向

R1(config-if)#exit

R1(config)#int fa0/1

R1(config-if)#ip access-groupclient-to-server out //client-to-server应用到fa0/1的进方向

R1(config-if)#exit

 

检查測试:

PC1#ping 172.168.2.22 //PC1无法訪问PC2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 172.168.2.22, timeout is 2 seconds:

U.U.U

Success rate is 0 percent (0/5)

 

PC1#telnet 202.100.100.100//PC1不能訪问servertelnet服务(23port)

Trying 202.100.100.100 ...

% Destination unreachable;gateway or host down

 

PC1#telnet 202.100.100.100 80//PC1能够訪问serverwww服务(80port)

Trying 202.100.100.100, 80 ... Open

HTTP/1.1 400 Bad Request

Date: Fri, 01 Mar 2002 00:57:16GMT

Server: cisco-IOS

Accept-Ranges: none

400 Bad Request

[Connection to 202.100.100.100closed by foreign host]

 

PC2#telnet 202.100.100.100//PC2能够telnet服务器的23port

Trying 202.100.100.100 ... Open

User Access Verification

Username: cisco

Password:

Server#q

[Connection to 202.100.100.100closed by foreign host]

 

 

 

实验四、基于时间的ACL

技术分享

PC1配置:

PC1#conf t

PC1(config)#no ip routing

PC1(config)#int fa0/0

PC1(config-if)#ip add192.168.0.11 255.255.255.0

PC1(config-if)#no sh

PC1(config-if)#exit

PC1(config)#ip default-gateway192.168.0.1

 

Boss配置:

Boss#conf t

Boss(config)#no ip routing

Boss(config)#ip default-gateway192.168.0.1

Boss(config)#int fa0/0

Boss(config-if)#ip add192.168.0.22 255.255.255.0

Boss(config-if)#no sh

Boss(config-if)#exit

 

Internet配置:

nternet#conf t

Internet(config)#int fa0/1

Internet(config-if)#ip add202.100.100.1 255.255.255.0

Internet(config-if)#no sh

Internet(config-if)#exit

Internet(config)#ip route0.0.0.0 0.0.0.0 202.100.100.100

 

R1配置:

R1#conf t

R1(config)#int fa0/0

R1(config-if)#ip add192.168.0.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#int fa0/1

R1(config-if)#ip add202.100.100.100 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#time-range T1 //创建时间段T1

R1(config-time-range)#periodicdaily 09:00 to 18:00 //定义T1的时间为每天9点到18

R1(config-time-range)#exit

R1(config)#ip access-listextended go-internte //创建go-internet的扩展命名ACL

R1(config-ext-nacl)#10 deny ip192.168.0.3 0.0.0.254 any time-range T1//T1时间禁止奇数IP地址的客户机上网

R1(config-ext-nacl)#20 permitip any any //其它全部同意

R1(config-ext-nacl)#exit

R1(config)#int fa0/1

R1(config-if)#ip access-groupgo-internet out //go-internetACL应用到fa0/1的出方向

R1(config-if)#exit

 

測试检查:

R1#clock set 17:00:00 27 sep2014 //R1的系统时间改到T1范围内

PC1#ping 202.100.100.1 //T1时间段不能上网

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 202.100.100.1, timeout is 2 seconds:

UUUUU

Success rate is 0 percent (0/5)

 

R1#clock set 19:00:00 27 sep2014//R1的时间改到T1范围外

PC1#ping 202.100.100.1 //T1范围外PC1能够上网

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 202.100.100.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent(5/5), round-trip min/avg/max = 56/164/288 ms

 

Boss#ping 202.100.100.1 //Boss机永远能够上网

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 202.100.100.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent(5/5), round-trip min/avg/max = 64/137/308 ms

 

 

 

实验五、ACL中的establish实现TCP的单向通信

技术分享

PC1配置:

C#conf t

PC(config)#no ip routing

PC(config)#ip default-gateway192.168.0.1

PC(config)#int fa0/0

PC(config-if)#ip add192.168.0.11 255.255.255.0

PC(config-if)#no sh

PC(config-if)#exit

PC(config)#line vty 0 4

PC(config-line)#login local

PC(config-line)#exit

PC(config)#username cisco privilege15 password cisco

 

Internet配置:

Internte#conf t

Internte(config)#int fa0/0

Internte(config-if)#ip add202.100.100.100 255.255.255.0

Internte(config-if)#no sh

Internte(config-if)#exit

Internte(config)#ip route0.0.0.0 0.0.0.0 202.100.100.1

Internte(config)#line vty 0 4

Internte(config-line)#loginlocal

Internte(config-line)#exit

Internte(config)#username ciscoprivilege 15 password cisco

 

R1配置:

R1#conf t

R1(config)#int fa0/0

R1(config-if)#ip add192.168.0.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit                    ^

R1(config)#int fa0/1

R1(config-if)#ip add202.100.100.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#ip access-listextended tcp-establish

R1(config-ext-nacl)#10 permittcp any 192.168.0.0 0.0.0.255 established//同意已经建立连接的从外网返回的TCP数据通过

 R1(config-ext-nacl)#20 deny ip any any //拒绝全部流量

R1(config-ext-nacl)#exit

R1(config)#int fa0/1

R1(config-if)#ip access-grouptcp-establish in

R1(config-if)#exit

 

检查測试:

PC#ping 202.100.100.100 //内部发起的icmp出不去

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 202.100.100.100, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

 

PC#telnet 202.100.100.100 //内部发起tcptelnet能够出去

Trying 202.100.100.100 ... Open

User Access Verification

Username: cisco

Password:

Internte#q

[Connection to 202.100.100.100closed by foreign host]

 

Internte#ping 192.168.0.11 //外部发起的ICMP进不来

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 192.168.0.11, timeout is 2 seconds:

UUUUU

Success rate is 0 percent (0/5)

 

Internte#telnet 192.168.0.11 //外部发起TCPtelnet进不来

Trying 192.168.0.11 ...

% Destination unreachable;gateway or host down

 

  Establish參数利用TCP握手发起方未设置ACK位来匹配控制列表。ACK=0的将不符合控制列表。

当在ACL中加上establish參数后,路由器会滤除IP报头中SYNC置位的包(也就是连接请求的包)。而假设请求是内部用户发起的包,则不受影响。达到了控制外部用户的目的。即用户对外网请求的TCP数据同意通过;而禁止从外网主动发起的TCP连接数据通过,这样同意单向通信的效果。更符合安全须要。注意EstablishUDP无效。

 

 

 

实验六、自反ACL,真正实现单向通信

技术分享

PC配置:

PC#conf t

PC(config)#no ip routing

PC(config)#ip default-gateway192.168.0.1

PC(config)#int fa0/0

PC(config-if)#ip add192.168.0.11 255.255.255.0

PC(config-if)#no sh

PC(config-if)#exit

PC(config)#username ciscoprivilege 15 password cisco

PC(config)#line vty 0 40

PC(config-line)#login local

PC(config-line)#exit

 

Internte配置:

Internet#conf t

Internet(config)#int fa0/0

Internet(config-if)#ip add202.100.100.100 255.255.255.0

Internet(config-if)#no sh

Internet(config-if)#exit

Internet(config)#ip route0.0.0.0 0.0.0.0 202.100.100.1

Internet(config)#ip http server

 

R1配置:

R1#conf t

R1(config)#int fa0/0

R1(config-if)#ip add192.168.0.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#int fa0/1

R1(config-if)#ip add202.100.100.1 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#ip access-listextended reflect //创建扩展命名的ACL

R1(config-ext-nacl)#permit ip192.168.0.0 0.0.0.255 any reflect getout//设置内网訪问外网自反ACL,名字为getout

R1(config-ext-nacl)#deny ip anyany

R1(config-ext-nacl)#exit

R1(config)#ip access-listextended getin

R1(config-ext-nacl)#evaluategetout//依据getout自反ACL的规则,自己主动生成自反列表同意外部流量准入

R1(config-ext-nacl)#deny ip anyany

R1(config-ext-nacl)#exit

R1(config)#int fa0/1

R1(config-if)#ip access-groupreflect out //将自反ACL应用到fa0/1的出方向

R1(config-if)#ipaccess-group  getin in//将自己主动生成的ACL应用到fa0/1的进方向

R1(config-if)#exit

 

检查測试:

PC#ping 202.100.100.100 //PCping外网

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 202.100.100.100, timeout is 2 seconds:

.!!!!

Success rate is 80 percent(4/5), round-trip min/avg/max = 60/117/216 ms

PC#telnet 202.100.100.100 80//PC能够上网页

Trying 202.100.100.100, 80 ...Open

HTTP/1.1 400 Bad Request

Date: Fri, 01 Mar 2002 00:18:33GMT

Server: cisco-IOS

Accept-Ranges: none

400 Bad Request

[Connection to 202.100.100.100closed by foreign host]

 

Internet#ping 192.168.0.11 //外网无法ping内网

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echosto 192.168.0.11, timeout is 2 seconds:

UUUUU

Success rate is 0 percent (0/5)

Internet#telnet 192.168.0.11 //外网无法telnet内网

Trying 192.168.0.11 ...

% Destination unreachable;gateway or host down

 

R1#sh access-list //检查access-list状态。注意自己主动产生的几条ACL在会话结束后消失

Extended IP access list getin

    10 evaluate getout

    20 deny ip any any (24matches)

Reflexive IP access list getout

     permit tcp host202.100.100.100 eq www host 192.168.0.11 eq 26055 (7 matches) (time left 293)

     permit icmp host202.100.100.100 host 192.168.0.11  (18matches) (time left 54)

Extended IP access list reflect

    10 permit ip 192.168.0.0 0.0.0.255any reflect getout (62 matches)

20 deny ip any any

 

  自反 ACL 同意近期出站数据包的目的地发出的应答流量回到该出站数据包的源地址。

这样您能够更加严格地控制哪些流量能进入您的网络,并提升了扩展訪问列表的能力。使用自反 ACL 来同意从内部网络发起的会话的 IP 流量。同一时候拒绝外部网络发起的 IP 流量。此类 ACL 使路由器能动态管理会话流量。路由器检查出站流量,当发现新的连接时,便会在暂时 ACL 中加入条目以同意应答流量进入。自反 ACL 仅包括暂时条目。

当新的 IP 会话開始时(比如。数据包出站)。这些条目会自己主动创建,并在会话结束时自己主动删除。与前面介绍的带established 參数的扩展 ACL 相比。自反 ACL 能够提供更为强大的会话过滤。

虽然在概念上与established 參数类似,但自反 ACL 还可用于不含 ACK RST 位的 UDP ICMPestablished 选项还不能用于会动态改动会话流量源port的应用程序。permit established 语句仅检查 ACK RST 位。而不检查源和目的地址。

自反 ACL 具有以下长处:

  1. 帮助保护您的网络免遭网络黑客攻击,并可内嵌在防火墙防护中。

  2. 提供一定级别的安全性,防御欺骗攻击和某些 DoS 攻击。自反 ACL 方式较难以欺骗。由于同意通过的数据包须要满足很多其它的过滤条件。比如,源和目的地址及port号都会检查到,而不仅仅是 ACK RST 位。

  3. 自反ACL永远是permit的;

  4. 自反ACL同意高层Session信息的IP包过滤;

  5. 利用自反ACL能够仅仅同意出去的流量,可是阻止从外部网络产生的向内部网络的流量。从而能够更好地保护内部网络。

  6. 自反ACL是在有流量产生时(如出方向的流量)暂时自己主动产生的,而且当Session结束时条目就自己主动删除;

  7. 自反ACL不是直接被应用到某个接口下的。而是嵌套在一个扩展命名訪问列表下的。

  8. 自反 ACL 仅可在扩展命名 IP ACL 中定义。自反 ACL 不能在编号 ACL 或标准命名ACL 中定义。也不能在其它协议 ACL 中定义。自反 ACL能够与其它标准和静态扩展 ACL 一同使用。

 

 

 

实验七、动态ACL

技术分享

PC1配置:

PC#conf t

PC(config)#no ip routing

PC(config)#ip default-gateway 192.168.0.1

PC(config)#int fa0/0

PC(config-if)#ip add 192.168.0.11255.255.255.0

PC(config-if)#no sh

PC(config-if)#exit

 

Internet配置:

Internet#conf t

Internet(config)#int fa0/0

Internet(config-if)#ip add 202.100.100.100255.255.255.0

Internet(config-if)#no sh

Internet(config-if)#exit

ternet(config)#ip route 0.0.0.0 0.0.0.0202.100.100.1

Internet(config)#ip http server

 

R1配置:

R1#conf t

R1(config)#int fa0/0

R1(config-if)#ip add 192.168.0.1255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#int fa0/1

R1(config-if)#ip add 202.100.100.1255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#username cisco password cisco

R1(config)#line vty 0 2

R1(config-line)#login local

R1(config-line)#autocommand access-enablehost timeout 5//设置当telnet身份认证完毕就触发激活动态ACL,假设2分钟内没有匹配该条目的流量出现。则条目失效。

R1(config-line)#exit

R1(config)#line vty 3 4

R1(config-line)#login local

R1(config-line)#rotary 1

R1(config-line)#exit

R1(config)#ip access-list extended DY //创建扩展命名的ACL

R1(config-ext-nacl)#10 permit ip 192.168.0.00.0.0.255 host 192.168.0.1//同意内网到网关的訪问。可telnet认证

R1(config-ext-nacl)#20dynamic internet timeout 120 permit ip 192.168.0.0 0.0.0.255 any//telnet认证后动态创建acl,同意内网主机有120分钟时间訪问外网,一旦它超过120分钟,即使有流量正在传输,全部会话都会被切断,假设还须要通信,就须要又一次建立连接

R1(config-ext-nacl)#30 deny ip any any //其它流量全部拒绝

R1(config-ext-nacl)#exit

R1(config)#int fa0/0

R1(config-if)#ip access-group DY in

R1(config-if)#exit

 

检查測试:

PC#ping 202.100.100.100 //未认证前出不了外网

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to202.100.100.100, timeout is 2 seconds:

UUUUU

Success rate is 0 percent (0/5)

 

PC#telnet 192.168.0.1 //telnet到路由器进行认证

Trying 192.168.0.1 ... Open

User Access Verification

Username: cisco

Password:

[Connection to 192.168.0.1 closed by foreignhost]

 

PC#ping 202.100.100.100 //完毕认证后正常ping外网

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to202.100.100.100, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-tripmin/avg/max = 60/122/268 ms

 

PC#telnet 202.100.100.100 80////完毕认证后正常訪问外网

Trying 202.100.100.100, 80 ... Open

HTTP/1.1 400 Bad Request

Date: Fri, 01 Mar 2002 00:47:04 GMT

Server: cisco-IOS

Accept-Ranges: none

400 Bad Request

[Connection to 202.100.100.100 closed byforeign host]

 

R1#show access-lists //查看ACL状态

Extended IP access list DY

    10permit ip any host 192.168.0.1 (333 matches)

    20Dynamic internet permit ip 192.168.0.0 0.0.0.255 any

       permit ip host 192.168.0.11 any (21matches) (time left 7138)//仅仅同意认证成功的主机出去

    30deny ip any any (60 matches)

 

动态ACL(AccessControl List)是对传统訪问表的一种重要功能增强。动态ACL是能够自己主动创建动态訪问表项的訪问列表。传统的标准訪问列表和扩展的訪问列表不能创建动态訪问表项。一旦在传统訪问列表中加入了一个表项。除非手工删除,该表项将一直产生作用。而在动态訪问表中,能够依据用户认证过程来创建特定的、暂时的訪问表项。一旦某个表项超时。就会自己主动从路由器中删除。用户首先通过提供用户名口令,开启一个到路由器telnet会话。在用户被认证之后,路由器会自己主动关闭telnet会话。同一时候将一个动态訪问表项置于某个訪问表中。以同意源地址为认证用户工作站地址的报文通过。这样。我们能够在安全边界上配置訪问表。仅仅同意那些能够通过用户认证的工作站才干发送向内的报文。由于动态ACL须要telent认证,所以要注意以下几点配置:

  1. Router(config-line)# rotary 1//假设一旦开启动态ACL,那么全部发起的telnet会话都会触发一个动态ACL表项,可是telnet会立即关闭。假设我们想要管理一台设备的话,就须要在vty 0-4的当中一个进程中输入该命令。然后在telnet的时候地址后面打上3001

  2. Router(config-line)# password xxxx //VTY下配置即仅仅进行密码认证

  3. Router(config)# username name password xxxx//指定认证时须要输入的用户名和密码

  4. Router(config-line)# autocommand access-enable [host][timeout minutes] //输入该命令就是同意认证成功后自己主动建立一个动态ACL,假设不加host。一旦一台主机认证成功以后,那么其它主机就不须要认证了,这样是不好的。timeout指定空暇超时时间,单位是分钟。

    空暇超时时间是针对单独的一个表项的时间,假设该表如今指定的时间内没有流量通过。那么它就会超时,而且自己主动从ACL中删除。另外autocommand access-enable既能够在vty进程以下打,也能够在特权模式下打。不同的是,特权模式下能够打?看到命令的详解,而vty以下看不到

CCNP路由实验之十四 路由器的訪问控制ACL