分类: 系统运维
2008-05-20 21:38:10
PC(10.1.1.2)---E0(10 |
.1.1.1)[RouterA]S0(192.1.1.1 |
)---S1(192.1.1.2)[RouterB] |
做网络的单向访问其实 但你不能访问我。 |
实现的是防火墙的基本功能:我 |
是内网,你是外网,我能访问你, |
所以现在假设RouterA 设我想做的是内网的PC机能 |
的E0口所连网段为内网段,Rout ping通外网RouterB的S1口,但R |
erA S0所连的网段为外网段,还假 outerB却ping不进我的内网。 |
用ACL来实现类似的单向访问控制需 Reflexive ACL的配置分为两个部分,一 |
要用到一种特殊的ACL,叫Reflexive ACL。 部分是outbound的配置,一部分是inbound的配置。 |
在继续下面的说明之前,先说点题外 一些我的同事)自然的就这么想:那我在 RouterB的流量进来不就行了?看上去好 不行呢,因为很多人都忽略了这么一个问 方法只解决了去的问题,但这个流量在到 个返回的流量到了RouterA的S0口,但上 来的流量被挡住了,通讯失败。 |
话。在最开始想到单向访问问题时,我(也包括其它 E0口上允许PC的流量进来,然后再在S0口上禁止 像没什么问题,但一试就知道其实是不行的。为什么 题:即绝大多数的网络流量都是有去有回的,上面的 达RouterB后,RouterB还需要返回这个流量给PC,这 面的方法却在S0口上禁止了RouterB的流量进来,回 |
Reflexive ACL中outbo ,inbound部分决定了这些 |
und的部分决定了我出去的哪些 流量在返回后能被正确的识别并 |
内网网络流量是需要被单向访问的 送给内网发起连接的PC机。 |
Reflexive ACL中outbound的部分: |
ip access-list extended outbound |
_filter |
permit icmp any any |
reflect icmp_traffic |
permit ip any any |
!---注意在Reflexive |
ACL中只能用named方式的ACL, |
不能用numbered方式的ACL。 |
!---基本配置和普通AC 意思是这条ACE作为单向流 inbound部分被引用。 |
L并没有什么太多不同,不同之 量来处理,并且给了一个名称叫 |
处是reflect icmp_traffic,它的 icmp_traffic,icmp_traffic在 |
!---permit ip any any并不是必要 |
的,加在这里是为了另一个测试,下面会说明。 |
Reflexive ACL中inbound的部分: |
ip access-list extended inbound_filter |
evaluate icmp_traffic |
deny ip any any log |
!---inbound的配置有和普通ACL有点 outbound配置中的icmp_traffic进行了引 个流量确实是从内网发起的对外访问的返 |
不同了,第一句evaluate icmp_traffic对上述 用,也就是说,它要检查从外网进来的流量,如果这 回流量,那么允许这个流量进来。 |
!---注意deny ip any any any,但我加了log来对 |
any log这句,虽然这句也是不 上面outbound部分的permit ip |
必配的,因为是默认的deny ip any any进行测试。 |
Reflexive ACL中应用到接口的部分: |
interface Serial0 |
ip address 192.1.1.1 255.255.255.0 |
ip access-group inbound_filter in |
ip access-group outbound_filter out |
!---这里也有一些讲究 inbound_filter被应用到外 |
,ACL outbound_filter被应用 网口的in方向,in和out不能搞 |
到外网口的out方向,ACL 混。 |
好,现在进行测试,在10.1.1.2上pi 10.1.1.2。 |
ng 192.1.1.2,通了,RouterB上则ping不通 |
现在还余下一个问题: 网出去的返回流量进来呢? |
路由器既然已经deny了外网进来 |
的所有流量,那么它是怎么允许内 |
它是通过创建动态生成 |
的ACL来允许返回流量的,下面 |
看看show access-list的结果: |
…… |
Reflexive IP access list icmp_traffic |
permit icmp host 192.1.1.2 hos |
t 10.1.1.2 (24 matches) (time left 196) |
…… |
这些动态ACL可通过TCP 是通过内置的timer来消除 来核实。 |
的FIN/RST包来动态自动消除, 的,这点可通过上述show acces |
对ICMP这样stateless的包来说, s-list结果中的(time left 196) |
最后再说说那另一个测试,也就是两个ACL中加的多余的东西: |
ip access-list extended outbound |
_filter |
permit ip any any |
ip access-list extended inbound_filter |
deny ip any any log |
我在10.1.1.2上发起一 outbound_filter中的permi 返回流量,这个流量到了S0 有包含对TCP类型流量的检 |
个到192.1.1.2的TELNET连接, t ip any any检测后放行。到了 口后由inbound_filter检测,因 测,这个包由deny ip any any |
这个流量到了S0口后由ACL RouterB后,RouterB进行处理然后 为evaluate icmp_traffic中并没 log一句处理后丢弃并生成日志: |
00:24:28: %SEC-6-IPACCESSLOGP: list inbound_filter denied tcp 192.1.1.2(23) -> 10.1.1.2(1483), 1 packet |