ASA Transparent Mode【基于8.0系列透明防火墙】

简介

Transparent Mode也就是透明防火墙,它是为了解决在一个稳定的网络中,需要增加安全特性的时候一种解决方案,它能基于不改变网络部署和IP规划的情况下,进行连接,来提供内部网络的安全。其实它就相当于一个二层安全特性的交换机。

 

在做Transparent Mode注意的地方。
1、Transparent mode 一样遵循ASA自适应算法。 从高流量到低流量 而且在检测引擎中,那么默认是放行的,从低到高全部deny。除非ACL放行。

2、官方建议三层流量,在Transparent mode中 双向放行 (比如 OSPF,EIGRP 这些组播的流量) 否则,有些流量不能成功穿越。 但是内部的放行建议是IP any any,如果你只放行了ospf的流量,那么其他初始化的包会先匹配ACL是否有放行,没有就全部拒绝。

3、transparent Mode支持多模式的context,但是不能一个为router mode,另外一个为transparent mode ,context的思想源于65系列的FW模块,它支持router和Transparent同时存在。

4、必须配置管理IP,而且必须与内部通信网段处于同一网段。这个IP只是管理作用,不能当做网关来使用,但是防火墙可以设置一个默认网关,用于远程网关使用。

5、如果不是一个全新的firewall的话,那么一定要先保存配置,否则转换后它会清空所有的配置。并且不会保存

image001.png

这种适合在出口路由器与内部网络连接的中间做透明防火墙,来保证外网和内网之间的流量过滤掉不安全的因素。

Edge:
Edge(config)#int f0/0
Edge(config-if)#ip add 12.1.1.1 255.255.255.0
Edge(config-if)#no shut
Edge(config-if)#line vty 0 4
Edge(config-line)#password cisco
Edge(config)#int lo 0
Edge(config-if)#ip add 1.1.1.1 255.255.255.255

 

Inside
Inside(config-if)#int f0/0
Inside(config-if)#ip add 12.1.1.2 255.255.255.0
Inside(config-if)#no shut

把firewall改变成transparent 很简单,而且不需要重启,只需要输入一个firewall transparent,想恢复成router mode的话,只需要输入no firewall transparent

Transparent Mode的功能比较少,它不支持| NAT | Dynamic routing protocol | IPv6 | DHCP relay | QOS | Muticast | VPN termination for thrugh traffic |
转化后还需要两个步骤才能完成正常工作
1、配置管理IP地址,之前提到过不能作为GW使用,它就相当于二层交换机的VLAN 1一样,配置个IP,作为管理
2、接口配置接口名称和等级,Transparent Mode也遵循ASA算法

PIX
pixfirewall(config)# firewall transparent
pixfirewall(config)# ip add 12.1.1.254 255.255.255.0
pixfirewall(config)# int e0
pixfirewall(config-if)# nameif outside
INFO: Security level for “outside” set to 0 by default.
pixfirewall(config-if)# no shut
pixfirewall(config-if)# int e1
pixfirewall(config-if)# nameif inside
INFO: Security level for “inside” set to 100 by default.
pixfirewall(config-if)# no shut

这里只需要配置接口名称、等级就行,因为是透明模式,相当于二层来工作,它只看MAC地址转发,这里注意的是必须设置管理IP地址。

通信正常,Transparent的概念性东西也不是很多,主要是明白几个重点,其余的多做实验就能体会的到。

1、三层流量的双向放行问题。

现在Edge与Inside之间要起一个路由协议,在之前提到透明防火墙上对于三层流量是需要双向放行,这也官方建议的做法。
Edge(config)#router ospf 1
Edge(config-router)#router-id 1.1.1.1
Edge(config-router)#network 12.1.1.1 0.0.0.0 a 0
Edge(config-router)#network 1.1.1.1 0.0.0.0 a 0

isndie(config)#router ospf 1
isndie(config-router)#router-id 2.2.2.2
isndie(config-router)#network 12.1.1.2 0.0.0.0 a 0

image003.jpg

没有任何关于OSPF邻居的信息。

pixfirewall(config)# access-list ospf permit ospf any any
pixfirewall(config)# access-group ospf in interface outside

image004.jpg

这里发现邻居能起来,以前做的时候,没仔细分析过,这次复习的时候 特别深入了下 呵呵 感觉是不同,先看下几个状态。

image005.jpg
image006.jpg

这里会发现Edge这边,一会down,一会UP,在看下邻居信息,明显是没有收到关于Inside的hello包,所以dead time时间为21s了,正常情况下不会低于30s。

Edge

image007.jpg

Inside

image008.jpg

看下这两个hello包的情况,图不是很清晰,主要看IP地址,会发现Edge的hello包一直发送给224.0.0.5这个地址,因为我在PIX上明确放行了outside接口的OSPF流量,所以Inside能正常收到,抓包也显示出来。 而Inside这个接口是没有放行OSPF的流量的,所以Edge没有收到关于Inside的hello包。 所以造成邻居断开。

先了解下OSPF建立邻居的一个要点,hello包在OSPF中是为了发现邻居和维持邻居关系的一种机制,当各自的hello包中包含对方的RID的时候,这时候就可以进入two-way state了。如果明白了这点 在看下它们hello包的内容就明白了。

image009.jpg

Edge的hello包中,一直发送的是初始的hello包,没有包含任何的邻居信息

image010.jpg

Inside那边,因为它能收到关于Edge的hello包,所以它发送的hello包中携带了Edge的RID,想与Edge建立OSPF邻居关系。
分析下为什么能建立起邻居来。之前知道OSPF能够自动切换组播和单播包的发送,但是这只是在一直发送出组播hello包以后,一直没有收到关于邻居hello包中的信息包含自己的RID情况下,所以看第8个包 会发现Edge收到了关于 12.1.1.2—–12.1.1.1的单播hello.

image011.png

所以整个邻居建立起来,是依靠单播包来建立的,但是OSPF默认工作是以组播发送hello的,切换的机制只会在建立邻居关系的时候存在,并不会在建立后也以单播的方式进行工作。 最后结果导致,Inside一直能收到hello包,而Edge那边因为收不到hello包等hlodtime时间一过,就断开邻接关系,又开始循环的建立OSPF。
PIX上也有关于12.1.1.1 ———–12.1.1.2的状态化表项。

image012.jpg

这就是三层流量需要双向放行的问题,解决办法就是Inside接口也放行,但是建议是permit ip any any
pixfirewall(config)# access-list 100 permit ip any any
pixfirewall(config)# access-group 100 in interface inside

这里不使用OSPF any any的原因是,PIX的ACL对初始化数据包是检查ACL的,后续数据包才看状态化表项,如果只运行OSPF的流量过去,那么其余的流量全部被deny了。

2、arp-inspection的作用

在这个环境下,我们只会收到关于inside的ARP或者Edge的ARP信息,出现其他的ARP信息肯定是存在ARP 攻击行为,所以在这种情况下,建议使用arp-inspection功能。
arp-inspection 有两个模式 一个为flood,另外一个为no-flood,flood的意思是,当这个ARP不存在缓存信息的时候,它会flood这个ARP信息进行查询,如果是no-flood的话,如果不匹配缓存信息的话,那么就直接drop。

 

我这里把inside的IP改为12.1.1.3,而在PIX上静态绑定ARP为12.1.1.2 对应Inside的MAC地址。
isndie(config)#int f0/0
isndie(config-if)#ip add 12.1.1.3 255.255.255.0

pixfirewall(config)# arp-inspection inside enable no-flood
pixfirewall(config)# arp inside 12.1.1.2 c001.16d0.0000

image013.jpg

这样就telnet不出去了,因为这个ARP包信息中包含的源ip和MAC地址与PIX绑定的信息不一致,所以就drop了。

isndie(config)#int f0/0
isndie(config-if)#ip add 12.1.1.2 255.255.255.0

image014.jpg

当改回来后,就可以使用了,因为符合PIX上ARP的绑定信息。

这个功能有什么用呢,在某些情况下,可以防止用户更改IP地址,因为我们可以针对不同的IP做 不同的策略,但是不适合这个环境,它适合接入用户的地方,也就是第三个介绍的mac-learn 功能。

3、mac-learm

可能存在某种情况,需要对一个公共开放的主机区做一个安全的过滤,所以可以把防火墙放在接用户的地方。

image015.jpg

这里一定要注意一句话,outside接口与inside接口一定要处于不同的VLAN,这是一个特别的地方,因为如果都处于一个VLAN的话,PC访问其他内部的流量,那么直接走交换机转发了,而不经过firewall。 就按图上说,我们因该把R2与PIX的outside接口划分为一个VLAN,Inside接口与主机的接口为一个VLAN,那么当一个PC访问其他流量的时候,交换机会先把流量发送到PIX上做检测,然后由PIX策略决定转发给网关还是不转发。这里不存在不同VLAN之间不能互访的问题,因为最终的流量是交给PIX做检查的,PIX的转发决策很简单,符合了策略就转发,不符合就drop。
mac-learm的功能是开启MAC自动学习功能,相当于交换机一样,默认是开启的,如果需要关闭的话,输入mac-learn inside disable 。

 

如果是一个小型网络,主机数量不是特别大的情况下,建议手工做ARP的绑定,开启ARP检查功能。它会自动写入MAC地址中,把MAC学习功能关闭,那么能防止用户更改IP。 因为有时候 有某些特殊的要求,只允许部分IP上网,部分IP不允许。 可以根据这些IP来做策略,因为开启了ARP检查,用户更改IP也没用。 当然这是一种特殊的情况。

最后一个就是二层流量的ACL。它能基于二层的流量做过滤,默认情况下全部是拒绝的,所以如果存在某些流量的话,必须放行。 有个特殊的就是ARP的流量默认是允许的,当然可以通过0x0806来deny它。 注意的地方就是不要使用deny any,因为0x0800是IP的,any就包括了它,如果deny any的话,无论是二层还是三层的包全部过不了。

image016.jpg

如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog(其他平台同名),版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注、转发、点赞支持下!~。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值