a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 156|回复: 1

[CCNA] 访问控制列表学习:自反访问列表引入和配置

[复制链接]
发表于 2012-8-3 20:28:11 | 显示全部楼层 |阅读模式
三台路由器串联,要求阻止R3对R1的远程访问(telnet),但只能在R2上做。R1可以对R3进行telnet登陆。 ' u% A8 [+ `5 U) h# v
1 底层配置
7 v7 c1 ]- p; v5 WR1& }) }9 J: ~: f
interface Serial2/1
/ ?% h, h8 j0 M/ R6 Pp address 12.0.0.1 255.255.255.0
: U3 _) K0 o8 V3 U) {3 F- [) S: |router eigrp 90
  \: `6 C$ Y# h6 }3 }1 Qnetwork 12.0.0.0 0.0.0.255
% I/ j# j- X- `* `3 E4 Bo auto-summary
( _( e/ w4 t$ D% sR23 w1 [+ f0 g. m3 E! x* W
interface Serial2/1
2 h7 u( u7 y! Rp address 12.0.0.2 255.255.255.05 S3 X5 B6 t' G9 s8 F
interface Serial2/2/ M3 b" d! `& M8 c: i! N9 U
p address 23.0.0.2 255.255.255.0
  O$ H- S( g$ A; v% jrouter eigrp 90
* I. S. t/ t$ ?( H  R; I- Enetwork 0.0.0.0+ w! b9 L8 D2 n2 N! t
o auto-summary
# `6 M4 z+ V2 Q2 v/ l$ ]& [R3
2 t' t' |, Z9 C8 w7 O, iinterface Serial2/1
' j% X- V  e  lp address 23.0.0.3 255.255.255.0
9 G3 X' W/ V0 H9 P  [router eigrp 90! z: |; ~- F* Z& j8 _" t
network 23.0.0.0 0.0.0.2555 {; N) w" i, q
o auto-summary  `' o( H0 Z" T3 P" v

8 r* i7 U  q+ T) X' V9 A- J 
& P# G+ n$ {& z- I2 在R2上做ACL 拒绝R3对R1的所有TCP连接,但不能影响R1对R3的telnet
  `. I- d7 {+ B( D6 o. f在这里我们先用扩展访问列表做一下,看能不能实现。4 K8 x* M2 k6 ?0 Y6 R  j& }- M
r2(config)#access-list 100 deny tcp host 23.0.0.3 host 12.0.0.1
* j/ T' \) P4 c( N7 sr2(config)#access-list 100 permit ip any any
" W* B  `# n; N; F# pr2(config)#int s2/2. U5 I- C4 o! Y7 V, J+ P% \- i. ]
r2(config-if)#ip access-group 100 in / 将ACL应用到接口
  Q8 L+ g& v/ @& s( d3 A% C为了验证将R1和R3的VTY线路配置成直接登陆,无需密码。
' b8 @' ^5 _3 W: y; S, e2 ir1(config)#line vty 0 4" m. ?; A9 _. h5 \- |
r1(config-line)#no login
" A% i) c6 `, Tr3(config)#line vty 0 4
. ^3 W( ?8 G5 {! h9 A. b9 Lr3(config-line)#no login
$ B' V, a, S0 F" z, i! l7 R0 ~6 f( a现在进行验证。
# Z$ I& O: M1 s; `6 R- [0 ~) P2 jr3#telnet 12.0.0.1
! S$ V- Y! }2 ]) O+ Q6 p# {2 n( nTrying 12.0.0.1 ...
8 ]6 |3 j* p; ^& IDestination unreachable; gateway or host down! _7 w/ ?! X  a1 o: n
在R3上无法telnetR1,访问列表起了作用。我们再去R1做一下验证。
$ r/ d5 b* z* L7 Hr1#telnet 23.0.0.3/ Y" D( T* ?  F* \# u
Trying 23.0.0.3 ...
; R( u2 U+ a# rConnection timed out; remote host not responding
回复

使用道具 举报

 楼主| 发表于 2012-8-3 20:28:12 | 显示全部楼层

访问控制列表学习:自反访问列表引入和配置

这时,R1也无法telnet R3 这可不是我们所希望的结果。那为什么会产生这种结果呢?这是因为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.
) r0 [1 n4 e* O) }4 N9 X# ~综上所述,在R2上用扩展访问列表可以阻止R3主动向R1发起的TCP连接。但也阻止了R3被动向R1发的TCP回应。这是不合题意的。因此就目前而言,扩展访问列表无法满足这个需求。于是就引出了一个新型的访问列表―――自反访问控制列表。
( M3 D+ |7 I  L& t7 B" ^$ G: x3 用自反访问列表解决此问题# E( b. \$ g+ }  H1 M2 A
注意:因为自反列表只能建立在命名访问控制列表中,所以这里只能用命名控制列表2 s( s" h4 I" j2 c' b" B' h
r2#sh ip access-lists
" v$ u; x7 o# N) E3 U) C& lReflexive IP access list REF+ o. C4 G, E* ~! z0 Y
触发的自反列表项,匹配自反列表后自动产生
2 v5 G  f4 ?0 y# \  YExtended IP access list REFIN
7 i4 B5 W. Z, W# E% {5 [/ Wdeny tcp host 23.0.0.3 host 12.0.0.12 ^0 w' A9 L! Y4 `3 Q; P# W7 J
permit ip any any6 X; A  u0 z9 P2 D' |" A. V
evaluate REF8 u; @5 q" b0 b3 b) Q
根据上面的自反列表项执行# C5 V% a: p/ {, `
Extended IP access list REFOUT
" t9 \; V1 V- Npermit ip any any reflect REF5 _- }+ }( d8 ?# y2 @
建立自反列表
8 t6 {, N% }( H5 Q% [- H9 er2(config)#int s2/2
6 S9 m3 H- y) K* _! P+ ?/ R+ r' wr2(config-if)#ip access-group REFIN in1 Z, y+ J2 h% |5 j8 S- Q) i
在进方向调用列表REFIN2 i0 G. I# h" Z+ i6 v. I
r2(config-if)#ip access-group REFOUT out
% I% @- G# B: [: {/在出方向调用列表REFOUT" P# H6 ~0 N/ \; H! E) \
下面进行检验
" H0 a! D3 I& l" i2 Q0 f' m2 xr3#telnet 12.0.0.1
  M4 R, {% h" Y0 tTrying 12.0.0.1 ...7 w/ l' g. \  I# D0 j
Destination unreachable; gateway or host down7 k8 T; e& Z* [: v' n( P- `
R3无法登陆R1,这一步成功。再到R1上验证
/ L: P, q) R9 ^# e3 ]5 i% n, g2 Nr1#telnet 23.0.0.3
' d) z7 a) s% FTrying 23.0.0.3 ...
  b( K4 d+ i. x1 _Connection timed out; remote host not responding
, c8 k+ @2 H9 ?3 V) Z% BR1也无法登陆R3,这个需求失败了,我们到R2上查看一下ACL
* b# I6 `/ M6 d, x  b4 B. c5 `" Cr2#sh ip access-lists, B7 ]$ y$ R! L3 W+ ^9 H8 k
Reflexive IP access list REF
( h- W+ g; g9 A0 e* J% u, g0 K0 tpermit tcp host 23.0.0.3 eq telnet host 12.0.0.1 eq 11013 (5 matches) (time left 285)
# a9 k+ P# W8 Z7 B: X8 z6 yExtended IP access list REFIN
' ?8 [# R+ Z; x7 _$ x* hdeny tcp host 23.0.0.3 host 12.0.0.1 (18 matches)8 x' G$ h$ w# c) i/ e, g
permit ip any any (150 matches)
1 X; M) t6 k0 b4 t* j5 hevaluate REF* M& J/ E2 q8 h4 o* U0 E9 R! M4 _
Extended IP access list REFOUT
  [( h, W/ I* ~0 c7 P' n4 L0 @permit ip any any reflect REF (5 matches)
' |9 N: K  f! R9 e! \4 n2 B 
% g6 x, t0 G2 d  L+ _: S' w2 ^0 W3 Y2 G/ |1 ]
     让我们仔细的分析一下这个过程,当R3登陆R1时,R2 in 方向的REFIN 列表的第一条语句 deny tcp host 23.0.0.3 host 12.0.0.1 起了作用,因此登陆失败。
7 w' s5 q8 e! }2 U/ w4 D: Z+ z当R1登陆R3时,R1先向R3发起TCP请求,当这个请求数据包从R2的S2/2接口出来时匹配了REFOUT 列表的permit ip any any reflect REF 的这条语句。并触发了一条自反项。
4 a' v% |' \# ?+ w& F8 H我们可以看到permit tcp host 23.0.0.3 eq telnet host 12.0.0.1 eq 11013 (5 matches) (time left 285) 这个自反项是由于触发自动产生的。它的意思是允许R3用自己的23端口对R1向自己发出的telnet请求作出回应,这个回应向R1的随机端口11013发出。我开始看到产生了这个自反项,就觉得R1应该能成功登陆R3.但事实并不是如此。这是因为虽然产生了这条自反项,但要使数据包按照这个自反项来走,还需要匹配 evaluate REF 这条语句。而这条语句是建立在列表REFIN 中。当R3向R1的回应数据包到达R2时先要匹配列表REFIN .这时我们可以看到这个数据包直接匹配上了deny tcp host 23.0.0.3 host 12.0.0.1 这条语句,而不再匹配下面的语句了。所以它就被直接拒绝了。evaluate REF 这条语句在这里实际上被架空了因此 控制列表语句的顺序是至关重要的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-29 10:48 , Processed in 0.195616 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表