a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 162|回复: 1

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

[复制链接]
发表于 2012-8-3 20:28:11 | 显示全部楼层 |阅读模式
三台路由器串联,要求阻止R3对R1的远程访问(telnet),但只能在R2上做。R1可以对R3进行telnet登陆。
. K3 o5 L& B5 f1 底层配置9 O! I: E7 s. k# ?5 N# k
R1$ I. |( f/ m5 j
interface Serial2/1
  q* P& J6 K5 @+ u& J+ lp address 12.0.0.1 255.255.255.0' I9 R3 G2 U$ I; R
router eigrp 90
- Q% R7 E/ J4 b: F+ d2 i/ U$ v7 jnetwork 12.0.0.0 0.0.0.255  C) Y2 B. U& {3 h. q" i
o auto-summary. |% }4 w" e+ l/ j
R2
& X- j5 h. \. |5 Y* {interface Serial2/1" R. n- l4 R  {' w( |; Z
p address 12.0.0.2 255.255.255.0) S0 ~  {' }$ ?( U6 N
interface Serial2/2( H8 N  _3 d2 u
p address 23.0.0.2 255.255.255.0
* n8 l5 `$ S) Z  d$ srouter eigrp 90/ Q  G) m3 {& S( a! }
network 0.0.0.0/ ?. n+ d# E* P9 b  v) E: x1 R
o auto-summary- A5 T; c. k1 d( p6 V' K5 h8 T6 _. D
R38 `7 X( ~) [9 A* F% n4 I4 n
interface Serial2/1
( g8 ?" _' e! `! ^* pp address 23.0.0.3 255.255.255.0% U# t) `2 H/ L# R* ^9 N# H1 x, ]4 z
router eigrp 90
4 E( c& ]6 e) J# ~9 \/ [: f( I8 N5 C, L* Jnetwork 23.0.0.0 0.0.0.255
  J  b  G" l4 Fo auto-summary
7 d+ u9 `' M  O" f  z1 O( l  [. @7 }
 
; B; L- h8 Y7 I8 k2 在R2上做ACL 拒绝R3对R1的所有TCP连接,但不能影响R1对R3的telnet
" ?1 O4 v7 G; d( X; j' P在这里我们先用扩展访问列表做一下,看能不能实现。4 u$ _& X! D! C0 k- S8 ~: y
r2(config)#access-list 100 deny tcp host 23.0.0.3 host 12.0.0.1, a- _* k) B# ]3 t, d# G9 H1 n8 h' n
r2(config)#access-list 100 permit ip any any
( ]" ^+ E1 H: ^2 S: F, d9 br2(config)#int s2/2& C( @. v1 D! J
r2(config-if)#ip access-group 100 in / 将ACL应用到接口
3 n' h& t0 h" v% i; ~8 T% p为了验证将R1和R3的VTY线路配置成直接登陆,无需密码。
8 G& T- Q  c- G: wr1(config)#line vty 0 4" q' }8 `0 m3 z) r2 r% [8 h9 A
r1(config-line)#no login) ^9 R% d9 o2 f( M9 I
r3(config)#line vty 0 4) L1 e4 _, }) T& Q# n7 H; b
r3(config-line)#no login/ ^5 I9 {: I& O( T% }: `8 o2 Z
现在进行验证。
0 Y7 O0 I( Z% @( e% er3#telnet 12.0.0.1
3 ?, x( B8 w8 w, n& V- ]9 G6 gTrying 12.0.0.1 ...8 @- r/ Z+ p8 ]. t+ y7 w
Destination unreachable; gateway or host down' g) t8 q+ x+ x
在R3上无法telnetR1,访问列表起了作用。我们再去R1做一下验证。
* M2 K2 h- x+ k, x/ j& {+ _/ N( X/ ^r1#telnet 23.0.0.3* |7 T8 j" J6 i
Trying 23.0.0.3 ...
3 c) T/ ^+ I. C3 EConnection 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.
: Q& ~# S. o3 r$ b# z! f! G% q  x综上所述,在R2上用扩展访问列表可以阻止R3主动向R1发起的TCP连接。但也阻止了R3被动向R1发的TCP回应。这是不合题意的。因此就目前而言,扩展访问列表无法满足这个需求。于是就引出了一个新型的访问列表―――自反访问控制列表。
: l! y8 P+ `7 y) m% w4 C* B3 用自反访问列表解决此问题, F' R" L4 E% i0 T, o4 }
注意:因为自反列表只能建立在命名访问控制列表中,所以这里只能用命名控制列表; g6 X5 N& r2 J( v8 Z
r2#sh ip access-lists' f, x, T: h0 M7 A
Reflexive IP access list REF$ }6 n1 [& }& N
触发的自反列表项,匹配自反列表后自动产生
5 o+ a, p6 d; b- c) e  k, ?Extended IP access list REFIN
+ v# i1 O9 A) ~, r$ v9 @8 qdeny tcp host 23.0.0.3 host 12.0.0.1+ w. o; g! `1 i- i( q7 Z
permit ip any any
8 V" g* R1 c& O# r7 U& @evaluate REF/ v# c5 E! E, h8 E* D9 |7 T& i
根据上面的自反列表项执行/ m2 Q5 B7 e4 Z" n
Extended IP access list REFOUT
+ B5 D' R" @$ q0 s( w' m0 tpermit ip any any reflect REF
7 p: \" @+ V  ~# W7 t建立自反列表- a, [2 ]/ o+ Y+ y; k
r2(config)#int s2/2
$ G5 M: k7 C/ S0 z+ X' o7 Pr2(config-if)#ip access-group REFIN in
/ \& f1 g! R6 C3 ~在进方向调用列表REFIN
; l5 M& e* S1 ?r2(config-if)#ip access-group REFOUT out$ c8 g# [: _$ c
/在出方向调用列表REFOUT8 p- }7 b; ~! ?; v
下面进行检验7 v0 M# z& i1 |& Z- M+ w
r3#telnet 12.0.0.1
. E( s  U% L/ R5 w# i- _% a  U0 `Trying 12.0.0.1 ...
6 Q7 T: C4 I' O9 Q2 HDestination unreachable; gateway or host down
- N" z4 B7 G% a0 d# J; UR3无法登陆R1,这一步成功。再到R1上验证
8 [7 L8 l/ `; o' j2 G& x5 xr1#telnet 23.0.0.3
* m4 F* {# K+ i8 eTrying 23.0.0.3 ...' [5 g  _$ x' P, K. L- h8 s, L
Connection timed out; remote host not responding
: B0 w" s9 L4 P% `! j5 oR1也无法登陆R3,这个需求失败了,我们到R2上查看一下ACL
. Y2 c1 E( g5 e- D6 k" Dr2#sh ip access-lists$ R# \1 l5 E% B7 r2 q! K
Reflexive IP access list REF( K; G& P& n5 \: {% o6 J% ^
permit tcp host 23.0.0.3 eq telnet host 12.0.0.1 eq 11013 (5 matches) (time left 285)# C% g0 Y. d$ R* R) F6 r; k3 H) K
Extended IP access list REFIN- O# p3 ~! @4 A! u3 d
deny tcp host 23.0.0.3 host 12.0.0.1 (18 matches)
! l) E, C- b, }/ R; k; P) Ypermit ip any any (150 matches): X0 O; V0 E) W% J! J$ P
evaluate REF
6 ^: R* }* b1 e; A+ eExtended IP access list REFOUT1 V  O( {  @/ d  e! w( h$ ]8 @, M
permit ip any any reflect REF (5 matches)9 Y; r0 H- q0 s& p
 ( I! ^6 Z0 G* o( a
; j2 M; J5 O1 r8 H. N! }
     让我们仔细的分析一下这个过程,当R3登陆R1时,R2 in 方向的REFIN 列表的第一条语句 deny tcp host 23.0.0.3 host 12.0.0.1 起了作用,因此登陆失败。
' i) T- ?, Q" w- o" Q当R1登陆R3时,R1先向R3发起TCP请求,当这个请求数据包从R2的S2/2接口出来时匹配了REFOUT 列表的permit ip any any reflect REF 的这条语句。并触发了一条自反项。
" x! t5 a4 I- ~2 I我们可以看到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-6-8 06:50 , Processed in 0.273841 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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