【汇总】多厂商防火墙系列
简介
system config:其实就是物理防火墙本身,在这个模式下的防火墙只能划分不同的Context,对于这些Context做相对应的配置,它并不做实际的流量转发
admin config :它是当转换成multiple后自动会有的一个Context,它用于在system和其他虚拟Context之间进行切换管理,也可以作于流量转发使用。
对于虚拟防火墙的一些问题:对于多个虚拟防火墙其实都是通过物理防火墙转变的,它们可能使用同一接口(共享接口),如果某一个虚拟防火墙中的主机发送出去,返回的流量system到低交给哪个防火墙这是个问题,所以在这种情况下 有几种区分的办法。可以根据 源目IP | VLAN | MAC | 我们可以是不同IP 的相同VLAN,或者不同VLAN的相同IP 。 当然也可以通过MAC地址来区分。
在ASA上通过show mode:来查看当前处于什么模式 默认情况下处于single模式,也就是单一模式,通过一条命令mode multile来改变成多模式,这个过程是需要重启的。
这个是我以前上PIX的课程保留的拓扑。它是一个逻辑的拓扑,就是把一个firewall虚拟成多个以后的拓扑,这就是我说之前说这个是防firewall学习的难点之一,因为对于这个你思维要很清晰,知道怎么就构建这个拓扑,和区分。
这个呢,是实际的拓扑,先解释下这个拓扑怎么去理解,明白了这个其余的都很easy了。
首先做准备工作
Cisco-SW(config-vlan)#vlan 2
Cisco-SW(config-vlan)#name Cisco-Internet
Cisco-SW(config-vlan)#vlan 3
Cisco-SW(config-vlan)#name Outside
Cisco-SW(config-vlan)#vlan 4
Cisco-SW(config-vlan)#name admin.dmz
Cisco-SW(config-vlan)#vlan 5
Cisco-SW(config-vlan)#name admin.inside
Cisco-SW(config-vlan)#vlan 6
Cisco-SW(config-vlan)#name Cisco-Vir.Inside
把不同的接口划分进不同的VLAN。可以根据实际拓扑查看
interface FastEthernet1/0 这个是与firewall的E0接口起trunk
switchport mode trunk
!
interface FastEthernet1/1
switchport access vlan 3
!
interface FastEthernet1/2
switchport access vlan 2
!
interface FastEthernet1/3
switchport access vlan 4
!
interface FastEthernet1/4
switchport access vlan 5
!
interface FastEthernet1/5
switchport access vlan 3
!
interface FastEthernet1/6
switchport access vlan 6
关于Cisco-SW的操作就完了,剩下的把各个路由器配置下,最后配置firewall。
Cisco-DMZ(config)#int f0/0
Cisco-DMZ(config-if)#ip add 192.168.4.1 255.255.255.0
Cisco-DMZ(config-if)#no shut
Cisco-DMZ(config)#ip route 0.0.0.0 0.0.0.0 192.168.4.254
Cisco-DMZ(config)#line vty 0 4
Cisco-DMZ(config-line)#password cisco
这个路由是指向等下要做的conetext的接口路由。打开telnet服务,作为测试
OUTR3
OUTR3(config)#int f0/0
OUTR3(config-if)#ip add 218.18.100.254 255.255.255.0
OUTR3(config-if)#no shut
OUTR3(config)#line vty 0 4
OUTR3(config-line)#password cisco
internet
Cisco-Internet(config)#int f0/0
Cisco-Internet(config-if)#ip add 202.100.2.1 255.255.255.0
Cisco-Internet(config-if)#no shut
Cisco-Internet(config-if)#ip route 0.0.0.0 0.0.0.0 202.100.2.254
Cisco-Internet(config)#line vty 0 4
Cisco-Internet(config-line)#password cisco
admin.inside
Cisco-Inside(config-if)#int f0/0
Cisco-Inside(config-if)#ip add 192.168.5.1 255.255.255.0
Cisco-Inside(config-if)#no shut
Cisco-Inside(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.5.254
vir.inside
Cisco-Vir.Inside(config-if)#int f0/0
Cisco-Vir.Inside(config-if)#ip add 192.168.6.1 255.255.255.0
Cisco-Vir.Inside(config-if)#no shut
Cisco-Vir.Inside(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.6.254
基本配置都完毕了,主要是firewall的配置了。
我这已经把mode改为multiple了,如果刚启动肯定是signle,可以通过mode multiple然后重启改变。
默认情况下自动生成了一个admin的conetext。 如果没有的情况下,必须通过 admin-context admin 来创建,名字是自定义的
在转换mode的时候,它会自动备份当前的配置保存在flash中,当再次转换为signle的时候,可以通过这个配置来恢复。
no shut
!
interface GigabitEthernet1
no shut
interface GigabitEthernet0.2
vlan 2
!
interface GigabitEthernet0.4
vlan 4
!
interface GigabitEthernet0.5
vlan 5
!
interface GigabitEthernet0.6
vlan 6
开始创建context。之前必须有管理context,因为系统默认创建了 所以开始定义。
ASA(config)# context admin
ASA(config-ctx)# allocate-interface g1
ASA(config-ctx)# allocate-interface g0.4-g0.5
ASA(config-ctx)# config-url flash:/admin.cfg
定义adminContext,把g1共享接口和对应拓扑的g0.4(admin.dmz) g0.5(admin.inside) 划入这个Context,并定义一个Context保存配置的名字。
创建Vir的Context
ASA(config)# context Vir
Creating context ‘Vir’… Done. (2)
ASA(config-ctx)# allocate-interface g0.6 对应VLAN Cisco-Vir.Inside
ASA(config-ctx)# allocate-interface g1
ASA(config-ctx)# config-url flash:/Vir.cfg
INFO: Converting flash:/Vir.cfg to disk0:/Vir.cfg
这里因为flash中没有,所以会自动创建一个配置文件,用于保存Vir context的配置
创建FW的Context
ASA(config)# context FW
Creating context ‘FW’… Done. (3)
ASA(config-ctx)# allocate-interface g0.2 对应VLAN internet
ASA(config-ctx)# allocate-interface g1
SA(config-ctx)# config-url flash:/FW.cfg
INFO: Converting flash:/FW.cfg to disk0:/FW.cfg
这样Context都创建好了,对应的接口也划分好了,开始对每个Context进行配置了。
admin
ASA(config)# changeto context admin 进入admin的Context,在这个里面只会看到关于属于这个Context的接口信息。
配置G1接口为outside接口,与VLAN3的属于同一网段,接口都是no shutdown的,只是我习惯性的敲上了、
ASA/admin(config-if)# namei
ASA/admin(config-if)# nameif outside
INFO: Security level for “outside” set to 0 by default.
ASA/admin(config-if)# ip add 218.18.100.1 255.255.255.0
ASA/admin(config-if)# no shut
配置g0.4 DMZ,默认安全级别为0,所以改为50
ASA/admin(config-if)# int g0.4
ASA/admin(config-if)# nameif DMZ
INFO: Security level for “DMZ” set to 0 by default.
ASA/admin(config-if)# security-level 50
ASA/admin(config-if)# ip add 192.168.4.254 255.255.255.0
ASA/admin(config-if)# no shut
g0.5为Inside,这个名字是系统默认的 所以自动识别为100
ASA/admin(config-if)# int g0.5
ASA/admin(config-if)# nameif inside
INFO: Security level for “inside” set to 100 by default.
ASA/admin(config-if)# ip add 192.168.5.254 255.255.255.0
ASA/admin(config-if)# no shut
测试与内部的通信情况,都正常。
Vir
ASA/Vir(config)# int g1
ASA/Vir(config-if)# nameif otuside
INFO: Security level for “otuside” set to 0 by default.
ASA/Vir(config-if)# ip add 218.18.100.2 255.255.255.0
ASA/Vir(config-if)# int g0.6
ASA/Vir(config-if)# nameif inside
INFO: Security level for “inside” set to 100 by default.
ASA/Vir(config-if)# ip address 192.168.6.254 255.255.255.0
通信正常,这次没有no shutdown了,证明了接口都是开启的。
ASA/Vir(config)# changeto context FW
ASA/FW(config)# int g1
ASA/FW(config-if)# nameif inside
INFO: Security level for “inside” set to 100 by default.
ASA/FW(config-if)# ip add 218.18.100.3 255.255.255.0
ASA/FW(config-if)# int g0.2
ASA/FW(config-if)# nameif outside
INFO: Security level for “outside” set to 0 by default.
ASA/FW(config-if)# ip add 202.100.2.254 255.255.255.0
这里有点特别的是,g1的共享接口作为Inside,因为g0.2是连接internet的,所以作为outside接口存在。
这样整个Context的基本配置和划分就全部完成了,如果想保存配置的话,可以在每个Context中输入write来保存,也可以切换到system下 changeto system。 输入write memory all 全部保存。 其实把思路整理清晰了,配置起来挺简单的,主要是划分VLAN跟接口比较难点。
开始针对每个Context做些简单的实验,中间还涉及到一个共享接口的问题,主要是明白为什么会存在这个问题。
实验目的就是 admin里面的DMZ对外提供telnet服务,保证internet上的能够正常访问,其余的inside能够正常访问internet。
Admin
ASA/admin(config)# nat (inside,outside) 1 192.168.5.0 255.255.255.0
global (outside) 1 interface
转换正常。
static (dmz,outside) tcp interface 23 192.168.4.1 23
access-list 100 permit tcp any host 218.18.100.1 eq 23
access-group 100 in interface outside
AdminContext上做了nat的转换后,有转换槽位,所以转换很正常,那么看看Vir里面不做nat测试会出现一些问题。
发现竟然telnet 不成功。
抓包发现,192.168.6.1只有syn的数据包,没有收到任何的syn+ack和ACK的信息。而218.18.100.254 是回复了SYN+ACK的,并且还有tcp的keep-alive消息,最后的结果就是192.168.6.1并没有收到关于这些信息。
这就是共享接口下存在的问题:首先两端都有去往对方的路由,不存在任何的路由问题, 首先Cisco-Vir.Inside发送一个数据包IP :s 192.168.6.1 D:218.18.100.254 的telnet的包,防火墙收到以后发现是直连 所以直接发往OUTR3 ,这时候当OUTR3返回数据包的时候,它会以 s:218.18.100.254 d:192.168.6.1为源目返回,这时候system收到以后,它不知道该交给哪个Context,因为由于是共享接口,所以接口的MAC地址都是一样的,所以system不知道怎么转发了。
2、static (inside,outside)
3、mac-address auto :就是自动修改MAC,系统自动完成。
这下成功了,最简单适用的办法就是mac-address auto,它会自动修改相同MAC为不同的MAC地址。
测试internet也成功了。
最后一个问题就是管理问题了,通常IDC会给用户提供SSH或者telnet的来管理自己的防火墙。
ASA/FW(config)# telnet 0 0 inside
ASA/admin(config)# telnet 0 0 inside
开启telnet服务,这里就用dmin和FW测试。
之前提过Admin这个是管理Context,它能切换各个Context进行配置。
OUTR3#telnet 218.18.100.3
Trying 218.18.100.3 … Open
User Access Verification
Password:
Type help or ‘?’ for a list of available commands.
ASA/FW>
下载地址
关于博客资源下载说明
(1)第一种是书籍PDF与视频类,全部放在博客分享,觉得对大家学习有帮助的博主会收集好、然后以博主的经验整理分类后排序好分享出来。
(2)第二种是技术性文章与视频,全部放在公众号(网络之路博客)/B站(网络之路Blog)发布,以博主原创为主,主要分享系列为主,由浅入深的带大家了解工作中常用到的一些网络技术,当然也会分享一些比较经典的案例。
(3)分享资源有涉及到您的利益以及版权问题,请联系博主,24小时候内删除。
学习视频系列(总有您想要的)
Book与实验手册(从初级到高级)
数通系列(路由交换 无线、防火墙VPN等)
实战系列(最贴近企业需求的案例)
想第一时间收到最新更新内容吗,点击获取~~~