访问列表.docx
- 文档编号:7970581
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:13
- 大小:19.77KB
访问列表.docx
《访问列表.docx》由会员分享,可在线阅读,更多相关《访问列表.docx(13页珍藏版)》请在冰豆网上搜索。
访问列表
自反访问控制列表3
wangyang发表于2007-1-1115:
30:
19
方法二不修改原来的控制列表,而使用本地策略路由。
1建立route-map
r2(config)#route-mapR2permit10
r2(config-route-map)#matchipaddREFOUT
这个route-map匹配刚才建立的REFOUT列表。
2在全局下建立本地策略调用route-map
r2(config)#iplocalpolicyroute-mapR2
3验证
r2#telnet23.0.0.3
Trying23.0.0.3...Open
r3>exi
R2成功登陆R3。
现在看一下控制列表。
r2#shipaccess-lists
ReflexiveIPaccesslistREF
permittcphost23.0.0.3eqtelnethost23.0.0.2eq11018(54matches)(timeleft0)
ExtendedIPaccesslistREFIN
evaluateREF
denytcphost23.0.0.3any(27matches)
permitipanyany(1257matches)
ExtendedIPaccesslistREFOUT
permitipanyanyreflectREF(63matches)
这个策略的作用是让本路由器产生的数据匹配本路由器的控制列表(本例为REFOUT列表)。
从而打破了上面所说的那个控制列表的规则。
现在R2向R3的TCP请求的数据包也要匹配出方向的控制列表REFOUT,所有也就触发了自反列表,从而自动产生一条自反项。
当R3向R2的TCP请求数据包到达R2后匹配入方向的控制列表REFIN先匹配第一条evaluateREF匹配成功。
所以就按照自反项
permittcphost23.0.0.3eqtelnethost23.0.0.2eq11018执行。
所以登陆成功。
自反访问控制列表2
wangyang发表于2007-1-1115:
28:
55
下面我们就对这个列表进行修改。
r2#shipaccess-lists
ReflexiveIPaccesslistREF
permittcphost23.0.0.3eqtelnethost12.0.0.1eq11014(22matches)(timeleft252)
ExtendedIPaccesslistREFIN
evaluateREF
denytcphost23.0.0.3host12.0.0.1(3matches)
permitipanyany(60matches)
ExtendedIPaccesslistREFOUT
permitipanyanyreflectREF(18matches)
我现在将REFIN列表中evaluateREF条目放在了第一位这时当R1向R3的TCP请求触发了自反列表后,R3向R1的回应在到R2的REFIN列表时匹配的是evaluateREF语句,这条语句直接按照自反项permittcphost23.0.0.3eqtelnethost12.0.0.1eq11014执行。
按照我们的分析现在,R1应该可以成功telnetR3。
现在进行验证。
r1#telnet23.0.0.3
Trying23.0.0.3...Open
r3>
r3#telnet12.0.0.1
Trying12.0.0.1...
%Destinationunreachable;gatewayorhostdown
我们看到R1可以成功登陆到R3,而R3无法登陆到R1需求满足。
**************************************************************************************************************************************************************
现在我们做进一步的扩展,现在的需求是禁止R3对R1和R2的所有TCP连接,而不能影响R1和R2对R3的TCP连接。
1在R2上建立命名访问列表和自反列表
r2#shipaccess-lists
ReflexiveIPaccesslistREF
ExtendedIPaccesslistREFIN
evaluateREF
denytcphost23.0.0.3any/禁止23.0.0.3向所有目的发出的TCP连接
permitipanyany(3matches)
ExtendedIPaccesslistREFOUT
permitipanyanyreflectREF(19matches)
2进行验证
r3#telnet12.0.0.1
Trying12.0.0.1...
%Destinationunreachable;gatewayorhostdown
r3#telnet23.0.0.2
Trying23.0.0.2...
%Destinationunreachable;gatewayorhostdown
这时,R3已经无法登陆到R1和R2上,需求满足
r1#telnet23.0.0.3
Trying23.0.0.3...Open
r3>
R1可以成功登陆到R3,需求满足
r2#telnet23.0.0.3
Trying23.0.0.3...
%Connectiontimedout;remotehostnotresponding
R2无法登陆到R3,需求不满足。
这是什么原因呢,让我们再来看一下控制列表。
r2#shipaccess-lists
ReflexiveIPaccesslistREF
ExtendedIPaccesslistREFIN
evaluateREF
denytcphost23.0.0.3any(21matches)
permitipanyany(531matches)
ExtendedIPaccesslistREFOUT
permitipanyanyreflectREF(28matches)
我们看到这时没有自动产生一条自反项,也就意味着自反列表没有被触发,说明没有数据匹配到permitipanyanyreflectREF这条语句。
所以当R2向R3发起TCP连接后,R3向R2进行TCP回复的数据包到达R2的S2/2接口后,按照REFIN列表进行匹配,先匹配第一条evaluateREF由于没有自反项被触发,所以这条语句不执行,接着匹配下一条语句:
denytcphost23.0.0.3any数据包匹配上了这条语句,所以被拒绝。
那为什么R2向R3的TCP请求没有触发自反列表呢?
这是由于控制列表的一个原则,那就是:
本路由器上out方向的控制列表对本路由器自身产生的流量不起作用。
在本例中R2对R3的TCP请求根本没有匹配上REFOUT列表的permitipanyanyreflectREF语句,原因如上所述。
那么如何解决这个问题,让R2能登陆到R3,目前有两种方法;
方法一:
对访问控制列表进行修改。
r2#shipaccess-lists
ReflexiveIPaccesslistREF
ExtendedIPaccesslistREFIN
permittcphost23.0.0.3eqtelnethost23.0.0.2established
evaluateREF
denytcphost23.0.0.3any
permitipanyany(15matches)
ExtendedIPaccesslistREFOUT
permitipanyanyreflectREF(29matches)
permittcphost23.0.0.3eqtelnethost23.0.0.2established这条语句表示允许R3用自己的23号端口对R2的TCP请求进行回复。
这条语句也可以换一种写法。
permittcphost23.0.0.3eqtelnethost23.0.0.2ackrst
下面再次进行验证;
r3#telnet23.0.0.2
Trying23.0.0.2...
%Destinationunreachable;gatewayorhostdown
r3#telnet12.0.0.1
Trying12.0.0.1...
%Destinationunreachable;gatewayorhostdown
R3无法登陆R1和R2需求成功
――――――――――――――――
r1#telnet23.0.0.3
Trying23.0.0.3...Open
r3>
R1可以登陆R3,需求成功。
―――――――――――――
r2#telnet23.0.0.3
Trying23.0.0.3...Open
r3>
R2现在也成功登陆R3,需求成功。
LAB自反访问列表的应用
试验说明:
三台路由器串联,要求阻止R3对R1的远程访问(telnet),但只能在R2上做。
R1可以对R3进行telnet登陆。
1底层配置
R1
interfaceSerial2/1
ipaddress12.0.0.1255.255.255.0
routereigrp90
network12.0.0.00.0.0.255
noauto-summary
――――――――――――――――
R2
interfaceSerial2/1
ipaddress12.0.0.2255.255.255.0
interfaceSerial2/2
ipaddress23.0.0.2255.255.255.0
routereigrp90
network0.0.0.0
noauto-summary
――――――――――――――――
R3
interfaceSerial2/1
ipaddress23.0.0.3255.255.255.0
routereigrp90
network23.0.0.00.0.0.255
noauto-summary
2在R2上做ACL拒绝R3对R1的所有TCP连接,但不能影响R1对R3的telnet
在这里我们先用扩展访问列表做一下,看能不能实现。
r2(config)#access-list100denytcphost23.0.0.3host12.0.0.1
r2(config)#access-list100permitipanyany
r2(config)#ints2/2
r2(config-if)#ipaccess-group100in/将ACL应用到接口
为了验证将R1和R3的VTY线路配置成直接登陆,无需密码。
r1(config)#linevty04
r1(config-line)#nologin
r3(config)#linevty04
r3(config-line)#nologin
现在进行验证。
r3#telnet12.0.0.1
Trying12.0.0.1...
%Destinationunreachable;gatewayorhostdown
在R3上无法telnetR1,访问列表起了作用。
我们再去R1做一下验证。
r1#telnet23.0.0.3
Trying23.0.0.3...
%Connectiontimedout;remotehostnotresponding
这时,R1也无法telnetR3这可不是我们所希望的结果。
那为什么会产生这种结果呢?
这是因为R1向R3发起telnet请求时,是R1的一个随机端口与R3的23号端口通信。
R3收到这个请求后,再用自己的23号端口向R1的随即端口回应。
在这个例子中,R1向R3的请求,R3可以收到。
但当R3向R1回应时,却被R2上的ACL阻止了。
因为R2的ACL的作用是阻止R3向R1的所有TCP连接。
这个TCP回应也就被阻止掉了,所以就间接的造成了R1无法telnet到R3。
综上所述,在R2上用扩展访问列表可以阻止R3主动向R1发起的TCP连接。
但也阻止了R3被动向R1发的TCP回应。
这是不合题意的。
因此就目前而言,扩展访问列表无法满足这个需求。
于是就引出了一个新型的访问列表―――自反访问控制列表。
**************************************************************************************************************************************************************
3用自反访问列表解决此问题。
注意:
因为自反列表只能建立在命名访问控制列表中,所以这里只能用命名控制列表
r2#shipaccess-lists
ReflexiveIPaccesslistREF/触发的自反列表项,匹配自反列表后自动产生
ExtendedIPaccesslistREFIN
denytcphost23.0.0.3host12.0.0.1
permitipanyany
evaluateREF/根据上面的自反列表项执行
ExtendedIPaccesslistREFOUT
permitipanyanyreflectREF/建立自反列表
r2(config)#ints2/2
r2(config-if)#ipaccess-groupREFINin/在进方向调用列表REFIN
r2(config-if)#ipaccess-groupREFOUTout/在出方向调用列表REFOUT
下面进行检验
r3#telnet12.0.0.1
Trying12.0.0.1...
%Destinationunreachable;gatewayorhostdown
R3无法登陆R1,这一步成功。
再到R1上验证
r1#telnet23.0.0.3
Trying23.0.0.3...
%Connectiontimedout;remotehostnotresponding
R1也无法登陆R3,这个需求失败了,我们到R2上查看一下ACL
r2#shipaccess-lists
ReflexiveIPaccesslistREF
permittcphost23.0.0.3eqtelnethost12.0.0.1eq11013(5matches)(timeleft285)
ExtendedIPaccesslistREFIN
denytcphost23.0.0.3host12.0.0.1(18matches)
permitipanyany(150matches)
evaluateREF
ExtendedIPaccesslistREFOUT
permitipanyanyreflectREF(5matches)
让我们仔细的分析一下这个过程,当R3登陆R1时,R2in方向的REFIN列表的第一条语句denytcphost23.0.0.3host12.0.0.1起了作用,因此登陆失败。
当R1登陆R3时,R1先向R3发起TCP请求,当这个请求数据包从R2的S2/2接口出来时匹配了REFOUT列表的permitipanyanyreflectREF的这条语句。
并触发了一条自反项。
我们可以看到permittcphost23.0.0.3eqtelnethost12.0.0.1eq11013(5matches)(timeleft285)这个自反项是由于触发自动产生的。
它的意思是允许R3用自己的23端口对R1向自己发出的telnet请求作出回应,这个回应向R1的随机端口11013发出。
我开始看到产生了这个自反项,就觉得R1应该能成功登陆R3。
但事实并不是如此。
这是因为虽然产生了这条自反项,但要使数据包按照这个自反项来走,还需要匹配evaluateREF这条语句。
而这条语句是建立在列表REFIN中。
当R3向R1的回应数据包到达R2时先要匹配列表REFIN。
这时我们可以看到这个数据包直接匹配上了denytcphost23.0.0.3host12.0.0.1这条语句,而不再匹配下面的语句了。
所以它就被直接拒绝了。
evaluateREF这条语句在这里实际上被架空了因此控制列表语句的顺序是至关重要的。
时间访问控制列表
wangyang发表于2007-1-1115:
22:
47
LAB时间访问控制列表
说明:
让R1只能在特定的时间内登陆R3,其他时间不能登陆
1首先建立一个时间范围,(假设需求为只有在2006年12月24日23:
59至2006年12月25日0:
59这个时间段内,R1才能远程登陆到R3)
r2(config)#time-rangeWY
r2(config-time-range)#absolutestart23:
5924dec2006end0:
5925dec2006
定义一个名为WY的时间段;absolute参数表示一个绝对的时间段
2建立时间访问列表
r2(config)#access-list100permiteigrpanyany
r2(config)#access-list100permiticmpanyany
r2(config)#access-list100permittcphost12.0.0.1host23.0.0.3eqtelnettime-rangeWY
在控制列表中调用刚刚定义的时间段
r2(config)#ints2/1
r2(config-if)#ipaccess-group100in应用列表
3在R1上进行验证
r1#telnet23.0.0.3
Trying23.0.0.3...
%Destinationunreachable;gatewayorhostdown
现在R1无法登陆到R3上。
4现在修改R2的系统时间,把时间调为定义的时间段内的时间。
r2#clockset0:
30:
225dec2006
5R1再次登陆R3
r1#telnet23.0.0.3
Trying23.0.0.3...Open
r3>
现在R1可以登陆R3了,时间访问列表起了作用。
6现在重新定义时间段
r2(config)#time-rangeWY
r2(config-time-range)#periodicweekend12:
00to14:
00
参数periodic表示一个周期的时间,在这里是每个周末的意思(包括星期6和星期天)
r1#telnet23.0.0.3
Trying23.0.0.3...
%Destinationunreachable;gatewayorhostdown
现在无法登陆上R3,需要再次修改系统时间。
r2#clockset13:
30:
2017dec2006
r1#telnet23.0.0.3
Trying23.0.0.3...Open
r3>exi
[Connectionto23.0.0.3closedbyforeignhost]
现在R1可以成功登陆R3
总结:
time-range主要可以跟两个参数:
absolute和periodic
前者表示一个绝对的时间
后者表示一个周期的时间
阅读全文(69)|回复(0)|引用
动态访问控制列表2
wangyang发表于2007-1-1115:
21:
41
4现在再进一步的研究一下命令的几个参数;我们注意到R1到R2激活的命令:
r2#access-enable?
hostEnableaspecifichostonly
timeoutMaximumidletimetoexpirethisentry
这后面有两个参数,现在就做一下研究,先更改一下动态列表
r2(config)#ipaccess-listextendedWY
r2(config-ext-nacl)#dynamicCCIEpermittcpanyhost23.0.0.3eqtelnet
然后激活,现在看一下控制列表
r2#shipaccess
ExtendedIPaccesslistWY
permiteigrpanyany(1068matches)
permiticmpanyany
permittcphost12.0.0.1host12.0.0.2eqtelnet(477matches)
DynamicCCIEpermittcpanyhost23.0.0.3eqtelnet
permittcpanyhost23.0.0.3eqtelnet(15matches)
现在到R1上进行测试
r1#telnet23.0.0.3
Trying23.0.0.3...Open
r3>exi
r1#telnet23.0.0.3/source-interfacelo0
Trying23.0.0.3...Open
r3>
我们发现R1以S2/1或LO0接口为源都可以登陆到R3上;这是因为R2的动态列表允许源为ANY
等上几分钟,再查看一下ACL
r2#shipaccess
ExtendedIPaccesslistWY
permiteigrpanyany(1179matches)
permiticmpanyany
permittcphost12.0.0.1host12.0.0.2eqtelnet(477matches)
DynamicCCIEperm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 访问 列表