Neste post irei demonstrar o deploy e utilização do Azure Bastion Host. Azure Bastion Host, nada mais é de que um acesso RDP/SSH via Browser, isso facilita e muito o acesso a suas VMs via WEB, ele pode ser utilizado por consultores, prestadores de serviços, onde eles não possuem acesso a sua infraestrutura internet, com ele podemos dar permissão a uma VMs por exemplo, para um Consultor DBA Acessar um SQL Server, ou um alguém da área de operação/noc poder acessar uma VM com IIS e coletar alguns Logs. Vamos a nossa topologia.
Agora uma breve explicação sobre nossa topologia: Iremos criar um Resource Group, uma Vnet, uma Snet, um NSG (Nele iremos criar as Rules de InBound e OutBound), e nosso Azure Bastion, veja que em nosso exemplo não temos nenhuma VM na Vnet do Azure Bastion, gosto de deixar assim, “cada macado no seu galho”, a partir desta Vnet, basta termos Peering com outras Vnets para podermos fazer a conexão com nosso Azure Bastion.
Vamos ao nosso código:
####Explicação####
##Aqui declaramos as varias padrão de resource groupo, subscription name, Ambiente
de Dev/HML/Prd/Shared, nomes de objetos que serão utilizados na momenclatura
##Declarando Variaveis (Obrigatório)
export Subscription_Name="XXXXXXX" Substituir pela sua Subscription
export RG="rg"
export Depto_Corp="sec"
export ObjectBastion="bastion"
export Env="shared"
export Location="eastus"
export RGNameSec="${RG}"-"${Depto_Corp}"-"${Env}"-"${Location}"
####Explicação####
##Aqui declaramos as variaveis para criação da Vnet e Subnet
##Declarando Variaveis de Rede
export vnet="vnet"
export VnetName="${vnet}"-"${Depto_Corp}"-"${Env}"-"${Location}"
export CIDR="10.128.0.0/24"
export Prefix_Bastion="10.128.0.192/26"
export snet="snet"
export SnetNameBastion="AzureBastionSubnet"
####Explicação####
##Aqui declaramos a variavel para nome do nosso Azure Bastion
##Declarando Variaveis de Bastion
export BastionName="${ObjectBastion}"
####Explicação####
##Aqui declaramos as variaveis para criação de IP Publico para ser utilizamos em nosso Azure Bastion
##Declarando Variaveis de IP Publico
export PublicIPObject="pip"
export PublicIPSku="Standard"
export PublicIPName01="${PublicIPObject}"-"${BastionName}"-1
####Explicação####
##Aqui declaramos as variaveis para criação de nosso NSG
##Declarando Variaveis NSG
export NSG_Object_Name="nsg"
export NSGNameBastion="${NSG_Object_Name}"-"${snet}"-"${Depto_Corp}"-"${Env}"-"${Location}"-"${SnetNameBastion}"
####Explicação####
##Aqui declaramos as variaveis da nossas Tags
##Variaveis de Tags
export Description="Departamento"
export Value_Description="${Depto_Corp}"
export Cost_Center="Centro de Custo"
export Cost_Center_Value="${Depto_Corp}"
export Support_Description_Description="E-mail Suporte"
export Support_Description_Value="support"-"${Depto_Corp}""@xpto.com"
####Explicação####
##Aqui selecionamos nossa subscription
###Selecionar subscription
az account set --subscription "${Subscription_Name}"
####Explicação####
##Aqui criamos nosso Resource Group com nossas Tasg
###Criando Resource Group
az group create -n "${RGNameSec}" -l "${Location}" \
--tags "${Description}"="${Value_Description}" "${Cost_Center}"="${Cost_Center_Value}" "${Support_Description_Description}"="${Support_Description_Value}"
####Explicação####
##Aqui criamos nosso NSG com nossas Tasg
###Criando NSG
az network nsg create -g "${RGNameSec}" -n "${NSGNameBastion}" -l "${Location}" \
--tags "${Description}"="${Value_Description}" "${Cost_Center}"="${Cost_Center_Value}" "${Support_Description_Description}"="${Support_Description_Value}"
####Explicação####
##Aqui criamos nossas regras em nosso NSG de InBound
###Criando Regras NSG Bastion InBound
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowHttpsInBound' \
--protocol 'tcp' --direction 'inbound' --source-address-prefix 'internet' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range '443' --access 'Allow' --priority '120'
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowGatewayManagerInBound' \
--protocol 'tcp' --direction 'inbound' --source-address-prefix 'GatewayManager' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range '443' --access 'Allow' --priority '130'
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowAzureLoadBalancerInBound' \
--protocol 'tcp' --direction 'inbound' --source-address-prefix 'AzureLoadBalancer' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range '443' --access 'Allow' --priority '140'
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowbastionHostCommunication' \
--protocol '*' --direction 'inbound' --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range '8080' '5701' --access 'Allow' --priority '150'
####Explicação####
##Aqui criamos nossas regras em nosso NSG de OutBound
###Criando Regras NSG Bastion OutBound
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowSshRdpOutBound' \
--protocol '*' --direction 'outbound' --source-address-prefix '*' --source-port-range '*' \
--destination-address-prefix 'VirtualNetwork' --destination-port-range '22' '3389' --access 'Allow' --priority '100'
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowAzureCloudOutBound' \
--protocol 'tcp' --direction 'outbound' --source-address-prefix '*' --source-port-range '*' \
--destination-address-prefix 'AzureCloud' --destination-port-range '443' --access 'Allow' --priority '110'
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowBastionCommunication' \
--protocol '*' --direction 'outbound' --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
--destination-address-prefix 'VirtualNetwork' --destination-port-range '443' --access 'Allow' --priority '120'
az network nsg rule create -g "${RGNameSec}" --nsg-name "${NSGNameBastion}" --name 'AllowGetSessionInformation' \
--protocol '*' --direction 'outbound' --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
--destination-address-prefix 'Internet' --destination-port-range '80' --access 'Allow' --priority '130'
####Explicação####
##Aqui criamos nossa Vnet
###Criando Vnet
az network vnet create -g "${RGNameSec}" -n "${VnetName}" --address-prefix "${CIDR}" \
-l "${Location}" --tags "${Description}"="${Value_Description}" "${Cost_Center}"="${Cost_Center_Value}" "${Support_Description_Description}"="${Support_Description_Value}"
####Explicação####
##Aqui criamos nossa Subnet
###Criando Snet
az network vnet subnet create -g "${RGNameSec}" --vnet-name "${VnetName}" \
-n "${SnetNameBastion}" --address-prefixes "${Prefix_Bastion}"
####Explicação####
##Aqui anexamos nosso NSG a subnet do Azure bastion
###Anexando NSG a Snet
az network vnet subnet update -g "${RGNameSec}" --vnet-name "${VnetName}" \
-n "${SnetNameBastion}" --network-security-group "${NSGNameBastion}"
####Explicação####
##Aqui criamos nosso IP Publico para ser utilizado em nosso Azure Bastion
###Criando IP Publico
az network public-ip create -g "${RGNameSec}" -n "${PublicIPName01}" --sku "${PublicIPSku}"
####Explicação####
##Aqui Criamos nosso Azure Bastion
###Criando Bastion Host
az network bastion create -g "${RGNameSec}" --name "${BastionName}" \
--public-ip-address "${PublicIPName01}" --vnet-name "${VnetName}" --location "${Location}"
Agora veja ele em funcionado (pelo menos as imgens rs..)
Temos uma VM-1 (Windows Server 2016) na mesma região porém em outra vnet 10.1.0.0/16, nela temos um peering com a vnet do nosso Azure Bastion A partir deste peering nosso Azure Bastion consegue chegar nesta VM e conseguimos ter o acesso, veja abaixo
Agora acessamos a VM via portal do Azure
Veja que ela esta em outra Vnet
Agora no menu, vamos até “Bastion”
Após será exibido uma tela solicitando usuário e senha
Clique com “connect”
Agora temos total acesso a nossa VM (Neste exemplo Windows Server), se fosse uma VM em linux, teriamos o acesso via SSH pelo próprio Browser.
Neste post vamos criar uma infraestrutura no Azure utilizando Azure Firewall. Teremos o Azure Firewall em nossa Borda (EDGE), neste exemplo a rota Default “0.0.0.0/0” (Para internet) passará obrigatoriamente pelo Azure Firewall, com isso qualquer serviços que estiver anexado a snet que com a rota para o Azure Firewall terá que possuir regras de OutBound para poder acessar a internet. Vamos lá!!!!
Vamos aos nossos objetos:
Neste exemplo teremos:
Resource Group “rt-sec-fwedge-shared-eastus” Public IP “pip-mgt-sec-fwedge-shared-eastus” Public IP “pip-sec-fwedge-shared-eastus” Route Table “rt-sec-fwedge-shared-eastus” Vnet “vnet-sec-fwedge-shared-eastus” Snet “AzureFirewallSubnet” Snet “AzureFirewallManagementSubnet” Snet “Snet-Protected”
Após execução do Shell acima, além dos objetos criados, as VMs que estiverem na rede Snet-Protected teram acesso a internet, pois foi criado uma Rule Network para este fim.
*Obs, é possivel criar regras de InBound (NAT) para acessar um serviços dentro de uma VM que esta atrás do Azure Firewall.Consulte neste Post
Como havia comentado anteriormente, neste post irei demonstrar um cenário onde vamos utilizar “Transit Gateway” na AWS, para substituir o peering entre as VPC, e utilizá-lo em uma VPN IPSec com Fortigate com roteamento BGP.
Agora vamos a mão na massa, não vou dar tantos detalhes na criação dos objetos neste post.
*Obs neste post, temos redes simples e roteamente FULL ou seja todo mundo fala com todo mundo, SG e ACL liberado Any, isso para facilita o entendimento, em produção isso deve ser revisto e liberado somente o que for necessário para seu pleno funcionamento. Colocamos todas as subnets na mesma zona para faciliar o artigo, mas em produção sugiro ter pelo menos duas subnets, uma em cada zona, exemplo subnet1 zona A e subnet2 zona B.
Name tag “tgw-01” Description “Transit Gateway Sao Paulo” ASN “64530” esse será nosso ASN Auto accept shared attachments *Deixe habilitado O restante deixem como mostrado na figura abaixo
Transit Gateway criado em “transit Gateways” Create
Name tag “tgw-attch-01” Transit gateway ID “escolha o que acabamos de criar” Attachment type “Escolha VPC” VPC attachment “Habilite DNS Support” VPC ID “Escolha my-vpc-01”
Clique em criar
Repita os mesmos passos para attachment a “my-vpc-02”
Agora temos dois transit attachment
Agora que temos o Transit Gateway criado e temos as VPC anexadas, vamos criar o roteamento para nossas VPCs (sa-east-1) (us-east-2) (rede Fortigate) Em route table vamos associar da subnet em seus respectivo arquivo de rota
Após associar as subnets, vamos criar o roteamento para nosso transit gateway 10.120.1.0/24 (rede aws sa-east-1) para nosso tgw 10.120.2.0/24 (rede aws us-east-2) para nosso tgw 10.120.3.0/24 (rede aws us-east-2) para nosso tgw 10.126.0.0/24 (rede Fortigate) para nosso tgw 10.126.1.0/24 (rede Fortigate) para nosso tgw 10.126.2.0/24 (rede Fortigate) para nosso tgw
Repita os passos para my-route-table-02 10.120.1.0/24 (rede aws ea-east-1) para nosso tgw 10.120.2.0/24 (rede aws us-east-2) para nosso tgw 10.120.3.0/24 (rede aws us-east-2) para nosso tgw 10.126.0.0/24 (rede Fortigate) para nosso tgw 10.126.1.0/24 (rede Fortigate) para nosso tgw 10.126.2.0/24 (rede Fortigate) para nosso tgw
Agora vamos partir da nosso ambiente na AWS em us-east-2
Vamos as nossas VPCs my-vpc-03 10.120.2.0/24 my-vpc-03 10.120.3.0/24
Nossas subnets
Nossos Route table, ja deixei associado nossas subnet as tabelas de rotas
Agora vamos criar nosso Transit Gateway em us-east-2
As opções são as mesmas
Name tag “tgw-02” Description “Transit Gateway Ohio” ASN “64530” esse será nosso ASN Auto accept shared attachments *Deixe habilitado O restante deixem como mostrado na figura abaixo
Name tag “tgw-attch-02” Transit gateway ID “escolha o que acabamos de criar” Attachment type “Escolha VPC” VPC attachment “Habilite DNS Support” VPC ID “Escolha my-vpc-03”
Clique em criar
Repita os mesmos passos para attachment a “my-vpc-03”
Agora que temos o Transit Gateway criado e temos as VPC anexadas, vamos criar o roteamento para nossas VPCs (sa-east-1) (us-east-2) (rede Fortigate)
10.120.0.0/24 (rede aws sa-east-1) para nosso tgw 10.120.1.0/24 (rede aws sa-east-1) para nosso tgw 10.120.3.0/24 (rede aws us-east-2) para nosso tgw 10.126.0.0/24 (rede Fortigate) para nosso tgw 10.126.1.0/24 (rede Fortigate) para nosso tgw 10.126.2.0/24 (rede Fortigate) para nosso tgw
Repita os mesmos passos para “my-rote-table-02”
10.120.0.0/24 (rede aws sa-east-1) para nosso tgw 10.120.2.0/24 (rede aws sa-east-1) para nosso tgw 10.120.4.0/24 (rede aws us-east-2) para nosso tgw 10.126.0.0/24 (rede Fortigate) para nosso tgw 10.126.1.0/24 (rede Fortigate) para nosso tgw 10.126.2.0/24 (rede Fortigate) para nosso tgw
Calma ainda não acabou .rs…… agora vamos compartilhar nosso transit gateway de sa-east-1 com us-east-2, agora precisar pegar o ID do nosso transit gateway de us-east-2, anotem esse numero (não o meu mas sim o seu rs..)
Agora vamos voltar para sao paulo, em nosso transit gateway de sao paulo e vamos em transit gateway attchments, create transit gateway attchments
name tag “shared-tgw-ohio transit gateway ID “nosso tgw de sao paulo” Attchment Type “Peering Coonection” Account “My Account” Region “US East (Ohio) (us-east-2) Transit Gateway ID “O ID que separamos do TGW de Ohio” Clique em create
Se tudo deu certo, estamos neste ponto
Agora temos que aceitar o peering lá em Ohio
Estamos assim em Ohio
Vamos aceitar o peering
Selecione o transit gateway attchment, depois em actions, Accep transit gateway attachment
Mais um vez
Estamos assim em nosso transit gateway em ohio
Estamos assim em nosso transit gateway em são paulo
Até agora temos essa infraestrutura de rede na AWS em sa-east-1 (sao paulo) e us-east-2 (Ohio), o roteamento entre as regiões está sendo feito via “Transit Gateway”, temos rotas cadastradas e liberação em nossos SG.
Ainda não acabou ..rs….calma respira, estamos quase em 50%, simmmm isso mesmo 50% rs… ainda temos que criar o roteamente dentro do Transit Gateway em Sao Paulo e Ohio, mais é simples, bora lá.
Em “Transit Gateways, vamos em Transit gateway Route Tables
Temos este Route Table (Transit Gateway) “my-route-table-tgw”
Em Associations, veja que temos nossos anexos criados anteriormente
Agora vamos em “Routes”
Veja que temos ‘route’ para nossas VPC de sa-east-1, vamos adicionar rotas para as VPCs de us-east-2
Em create routre, CIDR “10.120.2.0/24 e escolha o attchment “Peering”, clique em create static route
Repita os passos para a segunda VPC de Ohio
Se tudo deu certo até agora, temos esse cenário:
Vamos aproveitar e fazer a mesma coisa no transit gateway de Ohio, ufa…..dá trabalho né….rs…., estamos quase lá…
Em Ohio (us-east-2), temos nosso route table transit gateway
Temos nossas associações
Agora vamos criar todas da mesma maneira que fizemos em sa-east-1, porém em us-east-2 iremos criar as rotas para a rede do Fortigate também, associando elas ao peering.
Se tudo correu bem, temos este cenário
Em us-east-2 (Ohio) tudo certo agora, vamos voltar para sa-east-1 (Sao Paulo)
Vamos partir para nossa VPN com Fortigate, em “Virtual Private Network (VPN), vamos criar um Customer Gateway
Name “cg-fgt” Routing “Dynamic” BGP ASN “65010” esta ASN será do nosso Fortigate Cetificate ARN “Deixe como esta” Device “Fortigate” este item não é obrigatório Clique em “Create Customer Gateway”
Se tudo correu bem
Agora vamos voltar para nosso Transit Gateway Attchment em sa-east-1 e vamos anexar nossa VPN Transit Gateway ID “escolha nosso transit gateway” Attchment Type “VPN” VPN Attchment “”Existing” escolha a que foi criada (customer gateway) Routing Options “Dymanic BGP” Enable Accleration “habilite” O restante deixe como esta
Se tudo correu bem, temos este cenário, temos anexados em nosso transit gateway duas VPCs, um Peering e uma VPN.
Feito isso, nossa conexão Site-to-Site é criada automaticamente. Veja como ficou: Temos transit gateway criado e cg criado
Temos aqui os detalhes dos Tunneis que estão DOWN (pois ainda não chegamos no fortigate)
Agora por fim e não menos importante (rs…) vamos para o fortigate. Antes disso precisamos pegar o arquivos na AWS para sabermos nossa PSK, pegamos ele em connections mesmo, fazer download e escolher Fortigate, feito download do arquivo, bora lá fazer as configurações. Vamos criar nossos Tuneis Phase1 e Phase2
Phase1
Phase2
Agora vamos criar o Segundo Tunel
Phase1
Phase2
Se tudo correu bem, temos dois tuneis VPN
Agora vamos configura nosso BGP.
#Vamos fazer via CLI no prompt do Fortigate
##Aqui vamos configura as interfaces (VPN)
##As informações de configurações encontra-se no arquivo .txt que fizemos download do console da AWS
config system interface
edit TunnelAWS01
set ip 169.254.97.118 255.255.255.255
set remote-ip 169.254.97.117 255.255.255.252
next
edit TunnelAWS02
set ip 169.254.72.94 255.255.255.255
set remote-ip 169.254.72.93 255.255.255.252
next
end
Se tudo correu bem, temos essa saída:
E temos as configurações nas interfaces
Vamos adicionar essas Interfaces a nossa Zona “Cloud”, aconselho a trabalhar com zonas, isso facilita o trabalho administrativo.
Agora vamos criar as regras de Firewall, neste post criaremos regras de InBound e OutBound Any para facilitar o artigo, é claro que no ambiente de produção isso não deve acontecer (mas sabemos por ai que é assim que funciona rs…)
##Vamos criar as regras via CLI do Fortigate
#Criar regras de firewall
###Eu trabalho com Zonas, então Trust é minha LAN e UnTrust é minha WAN
config firewall policy
edit 1
set name Cloud-to-Trust
set srcintf Cloud
set dstintf Trust
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
next
edit 2
set name Trust-to-Cloud
set srcintf Trust
set dstintf Cloud
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
end
Se tudo correu bem temos essa saída
Temos nossas regras criadas
Vamos ver se nossa VPN esta UP!. Nossos tuneis estão UP, Phase1 e Phase2
Porém nosso BGP ainda não esta UP!
Vamos configura o nosso anuncio de BGP para a AWS Vamos fazer via CLI do Fortigate
#Configurando BGP
config router bgp
set as 65010
set router-id 20.201.30.224
config neighbor
edit 169.254.97.117
set soft-reconfiguration enable
set remote-as 64530
next
end
config neighbor
edit 169.254.72.93
set soft-reconfiguration enable
set remote-as 64530
next
end
Se tudo correu bem
Agora vamos anunciar nossas rotas para AWS
Fortigate –> Network –> BGP 10.126.0.0/24 10.126.1.0/24 10.126.2.0/24 Se tudo correu bem temos essas rotas anunciadas.
E temos esses vizinhos configuradores
Vejam que com essas configurações nossas Rotas BGP para AWS já estão sendo recebidas
Vamos ver se na AWS nosso Transit Gateway ja esta recebendo nossas rotas anunciado pelo Fortigate? Vamos lá em “Transit Gateways” depois em “Transit Gateway Attchments”, vamos selecionar nosso transit gatewsy route table e em “routes”. Vejam pela imagem abaixo que nossas redes anunciadas pelo Fortigate já estão aparecendo
Agora vamos ver se tudo isso que foi feito acima (Vamos combinar que dá um certo trabalho e um pouco de conhecimento) esta funcionando.
Agora fazer os testes a partir de uma VM que esta atras do Fortigate IP: 10.126.0.132, a partir desta VM temos que conseguir chegar em todas as EC2 que estão na AWS, tanto em sa-east-1 (sao paulo) como em us-east-2 (ohio). IPs de destinos de nossas EC2 my-ec2-01 IP 10.120.0.173 my-ed2-02 IP 10.120.1.221 Conforme imagem abaixo:
Vamos verificar a conectividade entre nossa rede 10.126.0.0/24 (Fortigate) e as redes da AWS (sao paulo) 10.120.0.0/24 e 10.120.1.0/24 1 teste OK
2 teste ok
Conseguimos conectividade para AWS sa-east-1, agora vamos para us-east-2. IPs de destinos de nossas EC2 my-ec2-03 IP 10.120.2.164 my-ed2-04 IP 10.120.3.223 Conforme imagem abaixo:
Vamos verificar a conectividade entre nossa rede 10.126.0.0/24 (Fortigate) e as redes da AWS (sao paulo) 10.120.2.0/24 e 10.120.3.0/24 1 teste ok
2 teste ok
Imagem do Debug do Fortigate onde vemos os pacotes
Agora vamos ver o a conectividade da AWS para nossa rede Fortigate. VMs fortigate my-vm-01 IP 10.126.0.132 my-vm-02 IP 10.126.1.4 my-vm-03 IP 10.126.2.4 Vamos executar os teste a partir da my-ec2-01 IP 10.120.0.173 Estou dentro da VM my-ec2-01 IP 10.120.0.173 Vamos aos teste de conectividades para Fortigate 1 teste ok
2 teste ok
3 teste ok
Temos conectividade entre AWS sa-east-1 e as redes do Fortigate, agora vamos para us-east-1> Estou dentro da my-ec2-03 em us-east-2 (Ohio) vamos ver se termos conectividade
1 teste ok
2 teste ok
3 teste ok
4 teste ok
Teste de da rede 10.126.1.0/24, conforme figura abaixo, teste de conectividade esta ok.
Com os testes concluímos nosso artigo, ufá, deu trabalho mas no final deu tudo certo.
Neste post irei ensinar a configurar uma VPN IPSec entre Azure e AWS de forma nativa com os recursos das Clouds Públicas sem utilizar recursos de Marketplace (Terceiros).
Vamos a nossa configuração, iremos iniciar pela AWS, não irei criar todos os objetos (ja vimos isso antes), irei focos apenas na configuração.
Nossa VPC
Nossa Subnet
Nosso Route Table
Nossa EC2
Nosso SG (Security Group)
Nosso Costumer Gateway (Static Route)
Nosso VPG com nossa VPC anexada
Nossa conexão Site-to-Site
Agora vamos as configurações, vamos habilitar a propagação de rotas de nosso VPG e adicionar as redes em nosso SG (AWS)
1-) em nosso Route Table
1-) Vamos associar nossa subnet
3-) Em nosso SG, vamos deixar liberadas as conexões de entrada para as redes da AWS 10.15.0.0/16 e rede Azure 10.5.0.0/16
Agora vamos para as nossas configurações no Azure.
Nosso Gateway de VPN
Nosso Local Network Gateway
Nossa Vnet
Agora as configurações
1-) Local Network Gateway IP do Peer da AWS (aws fornece dois, vamos utilizar somente um) 54.207.82.77 Address Space (rede AWS) 10.15.0.0/16 2-) A conexão, aqui somente precisaremos informar a PSK que encontra-se no arquivo para download na AWS 3-) No NSG no Azure não é preciso fazer nada, pois no Azure o NSG é permissivo (ou seja libera tudo “VirtualNetwork”) 4-) Não é preciso criar routas, pois quando informamos a rede remota em nosso “local gateway network” automaticamente ja é criada a roda para vnet toda, vejam as rotas efetivas na interface da VM em nossa subnet no azure:
Agora nossa conexão no Azure (Status Connected)
Agora nossa conexão na AWS (Status Ativo)
Agora tem conseguimos estabelecer o Tunel VPN, vamos testar a conectividade
Em nossa VM Azure (Windows), vamos testar a conectividade com a rede AWS 10.15.0.0/16
Temos resposta positiva, agora em nossa EC2 na AWS
Nossa EC2
Como mostrado na figura acima temos conectividade com a rede Azure.
*Obs: Obviamente deixei os recursos de segurança como SG (Security Group AWS) e NSG (Network Security Group Azure) abertos para facilitar o aprendizado, mas em um ambiente de produção, logicamente não deixaremos tudo aberto, somente as portas necessárias.
**Obs: Se houver mais de uma VPC/Vnet que precisam de comunica por este mesmo tunel de VPN, se necessário configurar um transit gateway para este fim, em um próximo post irei criar VPN IPSec entre Azure e AWS, utilizando Transit Gateway, o cenário ficará assim:
Neste artigo irei configurar um VPN IPSec entre AWS e Fortigate com Roteamente BGP.
Vamos ao nosso cenário:
AWS – Sao Paulo
VPC My-VPC-01 10.128.0.0/24
Subnet my-subnet-01 10.128.0.0/26
Route table my-routetable-01 (Subnet-01)
Security Group my-sg-01
My EC2 my-ec2-01 (my-subnet-01)
Temos nosso “Costumer Gateway”
Abaixo as configurações com as nossas configurações (IP/ASN do Fortigate), um ponto bem importante aqui vamos utilizar o “ASN” “65010”, ele tem que ser único na sua rede.
Agora vamos para os nossos Virtual Private Gateway (VPG) – “my-vpg”
Agora aqui iremos utilizar o “ASN” “64530”este ASN será o ASN da AWS.
Após a criação ficará desta forma
Agora teremos que anexar nosso VPV (iremos anexar “my-vpc-01”, “Action” “Attach to VPC”
Agora temos nosso vpg com vpc attach
Agora vamos voltar para nossos arquivos de “Route Table”
Vamos selecionar “my-route-table-01”, depois em “Propagação de Rotas”, editar propagação de Rotas e Habilitar a propagação, repita esses passos para os outros dois aquivos de Route Table.
Agora vamos criar nossa conexão com nosso Fortigate
Se tudo correu bem, teremos essa tela
Agora vamos para nosso fortigate, mas antes disso precisamos pegar as configurações, clique em “fazer download da configuração”
Fornecedor “Fortinet” Plataforma “Fortigate 40+ Series” Software “FortiOS 6.4.4 + (GUI) Ike Version “IKEv2”
Pronto, agora sim, vamos para nosso Fortigate
EM VPN, IPSec Wizard, Create New
Vamos utilzar este nome “TunnelAWS01” nos iremos criar dois tunneis para este exemplo.
Essas são as informações fornecidas para o Tunnel 01
New VPN Tunnel Window Appears (Here we configure the VPN settings):
Under “Network” Section:
a. IP Version: IPv4
b. Remote Gateway: Static IP Address
c. IP address: 54.207.145.204
d. Local Interface: wan1
e. Local Gateway: Select Specify and enter WAN port IP (Public IP)
f. Dead Peer Detection: Enable by selecting On Idle/ On Demand
g. Authentication Method: Pre-shared Key
h. Pre-Shared Key: KUGQkdF1Y3_hKD1mI5azR2JwEQRE463n
i. IKE Version: 2
Phase 1 Proposal:
j. Encryption: aes128
k. Authentication: sha1
l. DH group: 2 ! and deselect 5
m. Keylife: 28800 seconds
! NAT Traversal is enabled by default but if your FortiGate device is not behind a NAT/PAT device, please deselect NAT Traversal.
! --------------------------------------------------------------------------------
! #2: IPSec Configuration
Under Phase 2 Selectors --> New Phase 2
a. Name: vpn-04ec6648c35364924-0
b. Local Address: LAN subnet behind Fortigate/0.0.0.0/0
c. Remote Address: AWS Private Subnet/0.0.0.0/0
Under Advanced
d. Encryption: aes128
e. Authentication: sha1
f. Select Enable Replay Detection
g. Select Perfect Forward Secrecy
h. DH Group: 2 ! and deselect 5
i. Keylife: 3600 seconds
j. Enable Auto-negotiate ! Autokey Keep Alive is enabled automatically when Auto-negotiate is enabled
k. Click Ok
Se tudo correu bem temos esta tela
Agora vamos criar mais um Tunnel, mas as informações do .txt, para o Tunnel 02
Temos as seguintes configurações para o Tunnel02
New VPN Tunnel Window Appears (Here we configure the VPN settings):
New VPN Tunnel Window Appears (Here we configure the VPN settings):
Under “Network” Section:
a. IP Version: IPv4
b. Remote Gateway: Static IP Address
c. IP address: 54.232.159.40
d. Local Interface: wan1
e. Local Gateway: Select Specify and enter WAN port IP (Public IP)
f. Dead Peer Detection: Enable by selecting On Idle/ On Demand
g. Authentication Method: Pre-shared Key
h. Pre-Shared Key: AVxMUvS1A1GuxDVcJxm_K28O67CthcZU
i. IKE Version: 2
Phase 1 Proposal:
j. Encryption: aes128
k. Authentication: sha1
l. DH group: 2 ! and deselect 5
m. Keylife: 28800 seconds
! NAT Traversal is enabled by default but if your FortiGate device is not behind a NAT/PAT device, please deselect NAT Traversal.
! --------------------------------------------------------------------------------
! #2: IPSec Configuration
Under Phase 2 Selectors --> New Phase 2
a. Name: vpn-04ec6648c35364924-1
b. Local Address: LAN subnet behind Fortigate/0.0.0.0/0
c. Remote Address: AWS Private Subnet/0.0.0.0/0
Under Advanced
d. Encryption: aes128
e. Authentication: sha1
f. Select Enable Replay Detection
g. Select Perfect Forward Secrecy
h. DH Group: 2 ! and deselect 5
i. Keylife: 3600 seconds
j. Enable Auto-negotiate ! Autokey Keep Alive is enabled automatically when Auto-negotiate is enabled
k. Click Ok
Se tudo correu bem até aqui teremos esse resultado.
Agora vamos criar uma Zona chamada Trust-Cloud, em Network, Interfaces, Create new, Zone
Adicione os dois Tunneis para AWS
Se tudo correu bem teremos
Agora voltando em nosso .txt, vamos começar a configurar o BGP.
Nos temos essa configuração a fazer nas interfaces VPN que criamos
Go to Network Tab --> Interface --> wan1 and edit TunnelAWS01
a. IP : 169.254.92.86
b. Remote IP: 169.254.92.85/30
c. Select Ping
d. Administrative Status: Up
e. Select Ok.
## Vamos fazer a configuração da Interface via CLI do Fortigate
#Configurar interfaces para sessão BGP
config system interface
edit TunnelAWS01
set ip 169.254.92.86 255.255.255.255
set remote-ip 169.254.92.85 255.255.255.252
next
!You can set MTU and MSS on the tunnel by performing this from the CLI:
config system interface
edit "TunnelAWS01"
set mtu-override enable
set mtu 1427
set tcp-mss 1379
next
end
Resultado, edit a interface e habilite o ping (repita isso na segunta interface)
Configurando MTU (Repita isso na segunda interface)
Agora repita os passos para a segunda interface
Vamos utilizar as informações que constam no .txt que foi feito download
Go to Network Tab --> Interface --> wan1 and edit TunnelAWS02
a. IP : 169.254.31.218
b. Remote IP: 169.254.31.217/30
c. Select Ping
d. Administrative Status: Up
e. Select Ok.
#Configurar interfaces para sessão BGP
config system interface
edit TunnelAWS02
set ip 169.254.31.218 255.255.255.255
set remote-ip 169.254.31.217 255.255.255.252
next
!You can set MTU and MSS on the tunnel by performing this from the CLI:
config global
config system interface
edit "vpn-08d53f64bc31f682f-1" ! This name will be the same as the VPN tunnel name
set mtu-override enable
set mtu 1427
set tcp-mss 1379
next
end
Edit a interface e habilite o ping
Se tudo correu bem até aqui, teremos esse resultado.
Agora vamos criar as regras de Firewall, aqui iremos fazer simples, Any –> AWS e Any –> OnPremises.
Vamos criar via CLI que é muito mais rapido
#Criar regras de firewall
config firewall policy
edit 1
set name allow-gcp-to-lan
set srcintf Trust-Cloud
set dstintf Trust
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
next
edit 2
set name allow-lan-to-gcp
set srcintf Trust
set dstintf Trust-Cloud
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
end
Se tudo correu bem nos temos ida e volta
Agora nossos Tunneis devem estar UPs, vamos conferir
Agora vamos para nossa configuração BGP no Fortigate
Voltamos lá no nosso .txt que foi baixado com as configurações, lá nos temos todas as informações necessária para configurar o BGP.
#Vamos utlizar a informação que consta no .txt
Go to Network --> BGP
#Primeira interface
a. Local-AS : 65010
b. Router-ID: 191.232.210.141
c. Click Apply
d. Neighbor -> Create New:
1. IP: 169.254.92.8
2. Remote AS: 64530
3. Click Add/Edit
#Segunda interface
Go to Network --> BGP
d. Neighbor -> Create New:
1. IP: 169.254.190.113
2. Remote AS: 64530
3. Click Add/Edit
Agora vamos declara nosso CIDR para o BGP
Se tudo correu bem até aqui, devemos ter esse
Agora que os dois Tuneis estão UPs
Agora vamos ver nosso roteamento Vemos que nossa rota BGP aparece em nossa tabela (rede AWS)
Agora de volta a AWS, vamos verificar nossa tabela de routa e Security Group
Liberamos em nosso SG a rede 10.5.0.0/22
Agora vamos ver nossa tabela de rotas
Nossa rota foi propagada com sucesso, vamos testar a conectivdade
Em nossa rede 10.5.0.0/22 conseguimos chegar na rede 10.128.0.0/24
Agora vamos ver em nossa rede AWS 10.128.0.0/24 se conseguimos chegar na rede 10.5.0.0/22
Com isso concluimos este artigo, em um próximo artigo irei fazer a conexão utilizando “Transit Gateway” com redes em Sao Paulo e Virginia utilizando somente uma conexão VPN IPSec.
Neste artigo iremos demonstrar como configurar uma VPN IPSec HA entre GCP (Google Cloud) e Fortigate com roteamente Dinamico (BGP)
Este é nosso cenário:
Google Cloud: VPC “10.110.0.0/2 Subnet-A 10.110.0.0/24 Subnet-B 10.110.1.0/24 Subnet-C 10.110.2.0/24 Cloud Gateway de VPN Cloud Router Cloud Firewall
Vamos a mão na massa, vamos acessar nosso console do Google Cloud e vamos em redes VPC. Clique em “Criar VPC”
Nome “network-corp-sao” Sub-redes “Personalizado” Editar Sub-rede Nome: subnet-sao-br-a Região “southamerica-east1 Intervalo de endereços IP “10.110.0.0/24” Clique em concluir, repita esses passos até a até a sub-rede 10.110.2.0/24
Em regras de firewall deixe como esta “(Default) Mode de roteamento dinamico “Global”
Clique em “criar”, VPC criada com sucesso.
Agora vamos criar nossa conexão de VPN no Google Cloud, vamos em “VPN”
Criar uma Conexão VPN
Nesta etapa, temos que escolhar nosso topologia de conexão, neste exemplo iremos escolher “Alta Disponibilidade HA”
Selecione “Continuar”
Nas opções de “gateway”
Nome do gateway de VPN “gw-gcp-sao-br Rede “network-gcp-sao-br” Região “southamerica1 (São Paulo)\
Clique em “Criar e Continuar”
Agora vamos adicionar os tunneis de VPN
Gateway de VPN de Peering “No Local ou não relacionado ao Google Cloud” Criar novo gateway de VPN de mesmo nível”
Neste exemplo iremos utilizar 2 interfaces (1 de cada operadora, o Google aceita até 4 interfaces) Nome “connect-onpremises-fgt Interface “2” Endereço IP da interface “xxx.xxx.xxx.xxx” Operadora A Endereço IP da interface “xxx.xxx.xxx.xxx” Operadora B
Clique em “Criar”
Agora em “Alta disponibilidade” “Crie um par de túneis VPN” Cloud Route “Criar novo roteador”
Nome “rt-gcp-sao-br” ASN do Google “65534” Neste exemplo usaremos este ASN para o Google Rotas Anunciadas “Anunciar todas as sub-redes visiveis ao roteador da nume (padrão” Neste exemplo usaremos esta opção, mas nada nos impede de usar persolizada e declara apenas algumas redes)
Agora vamos criar os Tuneis
Vamos ao Tunel 1 Nome “tunnel-fgst-br-sao-01” Versão do IKE “IKEv2” Chaves “Gerar e Copia” (Guarde a chave)
Clique em concluir e vamos ao segundo Tunnel
As opções são as mesmas, pode inclusive utilizar a mesma chave
Clique em “Criar e continuar”
Agora nesta etapa iremos configurar o BGP (Do lado do Google Cloud)
Clique no primeiro Tunel em “Configurar sessão BGP Na primeira sessão BGP iremos utilizar as seguintes opções
Nome “ngp-fgt-br-sao-01 Par ASN “65000” Neste exemplo este seria o ASN OnPremises Muito atenção nesta etapa o Google utilizar rede /30 para PAR BGP IP do BGP do Cloud Route “169.254.0.1” IP do Par BGP “169.254.0.2
Par do BGO “Ativado”
Clique em Salvar em continuar
Vamos configurar a sessão do BGP no segundo Tunnel
Nome “bgp-gft-sao-02” Par ASN “65000” IP do BGP do Cloud Route “169.254.0.5” IP do Par BGP “169.254.0.6” Par BGP (Ativada)
Clique em “Salvar e Continuar”
Agora clique em “Salvar a configuração do BGP”
Guarde essas informações, iremos utilizar mais tarde
Clique em “ok”
Olhando o Status da conexão temos
Agora vamos configurar nosso fortigate
Iremos criar via CLI
Abaixo os comandos
#Criar interfaces VPN
#Phase1
config vpn ipsec phase1-interface
edit GCP-HA-VPN-INT0
set interface port1 (Interface WAN1)
set ike-version 2
set keylife 36000
set peertype any
set proposal aes128-sha1 aes128-sha512 aes128-md5
set remote-gw 34.124.19.151
set psksecret 123456789
next
edit GCP-HA-VPN-INT1
set interface port2 (Interface WAN2)
set ike-version 2
set keylife 36000
set peertype any
set proposal aes128-sha1 aes128-sha512 aes128-md5
set remote-gw 35.220.40.107
set psksecret 123456789
next
end
#Criar Phase2
config vpn ipsec phase2-interface
edit GCP-HA-VPN-INT0
set phase1name GCP-HA-VPN-INT0
set proposal aes128-sha1 aes256-sha1 aes128-sha256 aes256-sha256 aes128gcm aes256gcm
set dhgrp 15 14 5
set keylifeseconds 10800
next
edit GCP-HA-VPN-INT1
set phase1name GCP-HA-VPN-INT1
set proposal aes128-sha1 aes256-sha1 aes128-sha256 aes256-sha256 aes128gcm aes256gcm
set dhgrp 15 14 5
set keylifeseconds 10800
next
end
#Configurar interfaces para sessão BGP
config system interface
edit GCP-HA-VPN-INT0
set ip 169.254.0.2 255.255.255.255
set remote-ip 169.254.0.1 255.255.255.252
next
edit GCP-HA-VPN-INT1
set ip 169.254.0.6 255.255.255.255
set remote-ip 169.254.0.5 255.255.255.252
next
end
#Criar ZoneCloud
config system zone
edit ZoneCloud
set interface GCP-HA-VPN-INT0 GCP-HA-VPN-INT0
set intrazone deny
end
#Criar regras de firewall
config firewall policy
edit 1
set name allow-gcp-to-lan
set srcintf ZoneCloud
set dstintf port3 #(Interface Trust)
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
next
edit 2
set name allow-lan-to-gcp
set srcintf port3 #(Interface Trust)
set dstintf ZoneCloud
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
end
#Configurando BGP
config router bgp
set as 65000
set router-id 169.254.0.2
config neighbor
edit 169.254.0.1
set soft-reconfiguration enable
set remote-as 65534
next
end
config neighbor
edit 169.254.0.5
set soft-reconfiguration enable
set remote-as 65534
next
end
#Configurando anuncios de redes BGP Fortigate
config router bgp
config network
edit 1
set prefix 10.5.0.0/22
next
end
Temos agora nossos tunneis configurados e conectados
Google Cloud
Fortigate
Roteamento Fortigate
Route BGP Cloud
Com isso concluimos nosso artigo de VPN IPSec com Fortigate e Google Cloud.
Temos os seguintes objetos neste cenario: Azure –> Ambiente Fortigate em HA e vnet dedicada, ambiente “File Exchange” (Troca de arquivos) com vnet dedicada com peering, dois arquivos Route Table. AWS –> VPC, EC2,CG,VGW,CON.
Neste cenario iremos criar uma VPN IPSec entre AWS e Azure (sei que é possível utilizar os objetos das próprias clouds, mas neste cenário iremos utilizar Fortigate no Azure), vamos botar a mão na massa.
Para criar o ambiente do Fortigate com Vnet dedicada, iremos utilizar este artigo que escrevi há um tempo atrás “clique aqui”.
Agora vamos ao nosso ambiente de “File Exchange” Este ambiente é composto por uma VM Windows Server 2016, com software de trocas de arquivos tradicionais (SFTP, CD-IBM, SMB (Este com DFS)). Então temos a vnet 10.128.10.0/24 conecta via peering com a vnet do firewall 10.126.0.0/24.
Agora vamos ao nosso ambiente na AWS: Temos uma VPC “172.28.0.0/16” Temos uma Subnet “172.28.31.0/24” Temos nosso servidor File Exchange “172.28.31.77”
Agora vamos as configurações, vamos inciar pela AWS (Lembrando que este é apenas um cenário que muitas empresas possuem, este artigo não significa que esta certo ou errado.) Vamos começar criando uma VPC na AWS.
Em “VPC” “Criar VPC”
nome da VPC “vpc-sao-paulo-bo” CIDR IPv4 “172.28.0.0/16
Não iremos utilizar “Tags” clique em “criar”
Agora temos nossa VPC criada
Vamos agora criar nossa Subnet, em “subnets”, “Criar Subnets”
Nome “Private” CIDR IPV4 “172.28.31.0/24”
Agora criaremos nossa VM (Windows Server 2016) nesta VPC e Subnet (Não irei mostrar aqui como criar uma EC2 na AWS)
Com nossa EC2 criada, vamos criar uma tabela de roteamento. Em “Route Table” “Criar Tabelas de Rotas” Nome “rt-subnet-bo-private” VPC “vpc-sao-paulo-bo”
Temos nossa tabela criada
Veja que só temos route 172.28.0.0/16, ainda não temos route para nossa VPN, não será criar essa rota de forma manual, pois iremos habilitar a “propagação de rotas”, mas isso depois de criarmos nossos objetos para conexão de nossa VPN IPSec. Agora vamos associar nossa subnet privada nesta tabela de roteamento, “Associação de sub-rede” “Editar Associação de sub-rede”
Marque nossa subnet private e clique em salva
Pronto agora nossa subnet esta associada, com isso qualquer rota propagada ja estará disponivél neste subnet
Agora vamos criar nossos objetos de VPN IPSec
Em Virtual Private Network (VPN), Customer Gateways “Create Customer Gateways”
Name “cgw-peer-azu-fortigate” IP Address “XXX.XXX.XXX.XXX” IP do nosso Load Balance do nosso Fortigate no Azure
Agora vamos criar nosso VGW, em Virtual Private Network (VPN)
vamos em “Create Virtual Private Gateway”
Name “vgw-aws-sao-paulo ASN “Amazon Default ASN” podemos deixar assim mesmo, pois neste exemplo iremos utilizar Static Route
Agora vamos anexar nossa VPC em nosso VGW
Selecione o VGW criada, depois “Actions” Attach VPC”
Selecione a VPC que criamos “vpc-sao-paulo-bo”
VGW criado e VPC anexada
Agora vamos criar nossa conexão
Em “Virtual Private Network (VPN), “Site-to-Site VPN Connections”
Criar conexão
Agora aqui, muita atenção pois se ficar errado aqui a VPN não irá funcionar
Tag “con-azure-fortigate” Target Gateway Type “Virtual Private gateway” escolha o que criamos na lista supensa Gateway do Cliente “Existente” Selecione o que criamos Opção de Roteamento “Estatico” pois neste exemplo não iremos utilizar BGP Prefixo “10.128.10.0/24” a rede de comunição do Azure Versão IP “IPv4” CIDR de rede IPV4 local “10.128.10.0/24” aqui é a rede do azure não a rede AWS CIDR de rede IPV4 remoto “172.31.0.0/16” aqui é a rede da AWS e não do Azure
As outras opções deixem como esta e clique em criar
Após alguns minutos (em média 10 minutos)
Aguarde até ficar disponivel
Com nossa conexão disponível
Podemos ver as configurações
O Tunnel ainda esta “DOWN” , pois ainda não criamos do lado do azure
Nossa rota estatica
Agora vamos em nosso ambiente Azure
Com disse no inicio deste post, não vou me aprofundar na criação do ambiente do Fortigate, pois o mesmo foi criado neste post já, utilizaremos a mesma infraestrutura para este artigo.
Depois de nossa infraestrutura de fortigate criada:
Vamos criar agora para nossa infra de “Fila Exchange”
Temos os seguintes objetos no ambiente de “File Exchange” no Azure
Resource Group “rg-file-exchange-brazilsouth” “10.128.10.0/24” Virtual Network “vnet-file-exchange-brazilsouth” “10.128.10.0/26” Subnet “snet-file-exchange-brazilsouth” Virtual Machine “BRAZUFE01” “Neste post ensino como criar Windows Server”
Vamos criar o peering entre a vnet do ambiente do “File Exchange” e do “Fortigate”
Agora vamos as rotas
Em nosso arquivo/objeto no Azure “Route Table” “rt-fw-edge-shared-brazilsouth-internal” vamos criar a rota para AWS
Assim ficará nosso roteamento
Route AWS
Agora vamos associar nossas snet
Temos que associar as seguintes subnet
snet-fwedge-shared-brazilsouth-Protected 10.126.0.128/27 (SNET dedicada para VMs) snet-fwedge-shared-brazilsouth-Internal 10.126.0.32/27 (Snet interna do Fortigate) snet-file-exchange-brazilsouth-01 10.128.10.0/26 (snet do ambiente do “File Exchange”
Agora com nosso roteamento pronto, vamos as configurações no Fortigate.
Mas para isso precisamos voltar na AWS, em VPN
Em Site-To-Site Connection clique selecione nossa conexão criada e depois “fazer download das configurações” em nosso exemplo selecione Fortigate, Fortigate 40+ Series, FortiOS 6.4.4, Ikev2
Fazer download
Com o arquivos de configuração em mãos
Vamos ao fortigate, em VPN, IPSec Tunnels
Create New -> IPSec Tunnel
Custon, TunnelAWS01
No arquivo que foi feito downoad, temos todas as informações necessário que precisamos para estabelecer as Phase1 e Phase2 da VPN
Temos o Peer “xxx.xxxx.xxxx.xxx Temos a PSK “xxxxxxxxxxxxxxxxxxxxx” Versão do IKE “V2”
i. IKE Version: 2 Phase 1 Proposal: j. Encryption: aes128 k. Authentication: sha1 l. DH group: 2 ! and deselect 5 m. Keylife: 28800 seconds
Under Phase 2 Selectors –> New Phase 2 a. Name: vpn-0179c76477325e5f9-0 b. Local Address: LAN subnet behind Fortigate/0.0.0.0/0 c. Remote Address: AWS Private Subnet/0.0.0.0/0
Under Advanced d. Encryption: aes128 e. Authentication: sha1 f. Select Enable Replay Detection g. Select Perfect Forward Secrecy h. DH Group: 2 ! and deselect 5 i. Keylife: 3600 seconds j. Enable Auto-negotiate ! Autokey Keep Alive is enabled automatically when Auto-negotiate is enabled k. Click Ok
Com o Tunnel criado, vamos as rotas
Vamos em network, static routes
Create New
Destination “172.28.0.0/16” Rede AWS Interface “TunnelAWS01” Nome que demos para nosso Tunnel
Agora vamos criar o roteamento dentro do Fortigate para nossa vnet 10.128.10.0/24 eu que temos um peering
Em Network, Static Route, Create New
Destination “10.128.10.0/24 gateway “10.126.0.33” (Gateway da Snet Azure) Clique em “OK”
Agora em Interface/Create Zone
Name “ZoneCloud” Interface “TunnelAWS01”, clique em OK
Agora vamos criar nossas regras de firewall
Em “Policy and Objetics” “Firewall Policy”
Create New
Name “Trust-to-ZoneCloud” Incoming interface “Trust(port2) Outgoing interface “ZoneCloud” Source “All” (Somente para este exemplo deixaremos tudo liberado) Destination “All” (Somente para este exemplo deixaremos tudo liberado) Schedule “Always” Service “All” (Somente para este exemplo deixaremos tudo liberado) Action “Accept” Inspection Mode “Flow-Based” Nat “Disable” Application Control “Default” Log Allowed traffic “All Sessions” Clique em “OK”
Neste momento nosso Tunnel IPSec ja encontra-se estabelecido
Nosso roteamento encontra-se ativo
AWS também encontra-se com o Tunnel Ativo
Na AWS vamos em VPC, Route Table
Vamos olhar nosso arquivo de roteamento
“rt-subnet-bo-private”
Podemos observar que nossa rota para Azure ja encontra-se propagada
Agora vamos a um teste basico, na nossa VM no Azure “BRAZUFE01”
vamos executar um ping para nossa VM de File Exchange que encontra-se na AWS
Temos resposta de nosso ping
Em nosso Fortigate temos respostas também.
Após este testes, podemos executar as instalação de nossos softwares de “File Exchange” normalmente, pois nossos ambientes que estão no Azure e na AWS ja possuem conectividade completa, após isso podemos refinar nossas regras de firewall para permitir somente o trafego necessário entre os ambientes.
E assim ficou nossa topologia
Espero ter ajudado.
*Obs: Para o sucesso desta conexão é imprescindível se atentar aos seguintes passos:
1º) Ao criar a conexão de VPN na AWS quando for informar a rede local (rede do cliente remoto) e rede remota (rede AWS). 2º) Lembre que habilitar a propação de rotas no arquivo de Route Table na AWS, desta forma você não precisa ficar criando routas de forma manual. 3º) Não esquece de liberar dentro do “SG” as redes remotas (aqui as redes do Azure) 4º) Na Route Table do Azure, sempre add as Subnet onde irão receber as conexão para o Firewall, neste exemplo a Snet Internal 5º) Sempre criar as rotas no arquivo Route Table do Azure (Fortigate), ele precisa saber para onde deve mandar o pacote (Sim no arquivo Route Table precisa ter a informação da rota, pois se não tiver, não chega o pacote no firewall) 6º) Se for necessário ter outra arquivos Route Table no azure, deve-se anexar a snet que receberá as rotas e a rota em sim definida, (Neste exemplo com dois arquivos Route Table no azure, os dois devem conter as rotas explicitas)
Olá, neste post iremos fazer o deploy do Azure Firewall em uma infraestrutura de Firewal EDGE (como ja feito com Palo Alto e Fortigate) Nesta topologia teremos Azure Firewall como borda de toda rede Azure (neste exemplo)
Vamos aos objetos criados
Objeto
Name
Descrição
Resource Group
rg01-fw-edge-shared-brazilsouth
RG
Azure Firewall
fw-edge
Standard
Public IP
pip-fw-edge-shared-brazilsouth-nat-out
xxx.xxx.xxx.xxx
Public IP
pip-fw-edge-shared-brazilsouth-nat-rdp
xxx.xxx.xxx.xxx
Public IP
pip-fw-edge-shared-brazilsouth-nat-ssh
xxx.xxx.xxx.xxx
Route Table
rt-fw-edge-shared-brazilsouth
Route Table
Virtual Network
vnet-fw-edge-shared-brazilsouth
10.225.0.0/22
*Não criamos aqui as VMs (Windows/Linux), mas elas estão na SubNet AzureFirewallSubnet-Trust Nossas Subnets
Neste post iremos fazer o deploy de Fortigate (Version 7) em HA (Active/Passive) “Load Balance (ELB/ILB)”, utilizando um template modificado fornecido pela prória fortigate (adequado as preferencias para este artigo de exemplo). Nesta topologia/arquitetura de rede colocamos o Fortigate EDGE para ser a rota default de todas as nossas vnets que estão no azure, com isso toda entrada ou saida de dados passa obrigatóriamente pelo Fortigate EDGE, essa arquitetura não esta certa nem errada, tudo vai depender do compliance de cada empresa, time de segurança, time de rede e claro do orçamento de cada um. Lembra muito o artigo que escrevi sobre Palo Alto
No final vou deixar os arquivos para download e algumas explicações sobre os arquivos .json
1x “nsg-fwedge-shared-brazilsouth-mgmt” com as seguintes regras
Allow-MGMT-HTTPS/SSH Source: XXX.XXX.XXX.XXX/XX (IP ou IPs de origem que podem se conectar na interface MGMT) Destination: 10.126.0.96/24 (Rede de gerencia MGMT)
Temos 3 IPs Publicos
pip-fwedge-mgmt-a (Management Fortigate A) pip-fwedge-mgmt-b (Management Fortigate B) pip-lb-external-fwedge-01 (IP Publico External Load Balance)
Temos um arquivo de Route Table “rt-fw-edge-shared-brazilsouth”, nele temos as seguintes rotas:
Name
CIDR
Next Hop type
Next Hop IP address
DefaultRoute
0.0.0.0/0
VirtualAppliance
10.126.0.190
Agora vamos ao nosso script
#!/bin/bash
##Declarando variaveis
##Declarando Variaveis (Obrigatório)
export Subscription_Name="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ##inserir sua Subscription Azure
export RG_Name02="rg-fw-edge-shared-brazilsouth"
export Location_Region="brazilsouth"
###Script
###Selecionar subscription
az account set --subscription "${Subscription_Name}"
##Criando RG
az group create -n "${RG_Name02}" -l "${Location_Region}"
##Deploy Fortigate Template
az deployment group create -g "${RG_Name02}" --template-file template.json --parameters @parametersFile.json
##Desligando VMs
az vm stop -g "${RG_Name02}" -n "fwedge01"
az vm stop -g "${RG_Name02}" -n "fwedge02"
##Deallocate
az vm deallocate -g "${RG_Name02}" -n "fwedge01"
az vm deallocate -g "${RG_Name02}" -n "fwedge02"
###Criando Storage Accout (Para boot diag)
az storage account create -g "${RG_Name02}" -n "stgdiagfwedgefgt01" -l "${Location_Region}" --sku "Standard_LRS"
##Criando Snet Internal Load Balance (Subnet para load balance interno)
az network vnet subnet create -g "${RG_Name02}" --vnet-name "vnet-fwedge-shared-brazilsouth" -n "snet-fwedge-shared-brazilsouth-LoadBalance" --address-prefixes "10.126.0.160/27"
##alterando IP Internal Load Balance
az network lb frontend-ip update -g "${RG_Name02}" --lb-name "ilb-fwedge-01" -n "frontend-fwedge-internal-01" --vnet-name "vnet-fwedge-shared-brazilsouth" --subnet "snet-fwedge-shared-brazilsouth-LoadBalance" --private-ip-address "10.126.0.190"
###Habilitando Boot dioag VM01/02
az vm boot-diagnostics enable -n "fwedge01" -g "${RG_Name02}" --storage "stgdiagfwedgefgt01"
az vm boot-diagnostics enable -n "fwedge02" -g "${RG_Name02}" --storage "stgdiagfwedgefgt01"
##Fixando IP eht0 (VM01/02)
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge01-eth0" -n "ipconfig1" --private-ip-address "10.126.0.5"
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge02-eth0" -n "ipconfig1" --private-ip-address "10.126.0.6"
###Fixando IP eth1 (VM01/02)
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge01-eth1" -n "ipconfig1" --private-ip-address "10.126.0.37"
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge02-eth1" -n "ipconfig1" --private-ip-address "10.126.0.38"
###Fixando IP eth2 (VM01/02)
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge01-eth2" -n "ipconfig1" --private-ip-address "10.126.0.69"
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge02-eth2" -n "ipconfig1" --private-ip-address "10.126.0.70"
###Fixando IP eth3 (VM01/02)
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge01-eth3" -n "ipconfig1" --private-ip-address "10.126.0.101"
az network nic ip-config update -g "${RG_Name02}" --nic-name "int-fwedge02-eth3" -n "ipconfig1" --private-ip-address "10.126.0.102"
###Anexando NSG MGMT a snet mgmt
az network vnet subnet update -g "${RG_Name02}" -n "snet-fwedge-shared-brazilsouth-Management" --vnet-name "vnet-fwedge-shared-brazilsouth" --network-security-group "nsg-fwedge-shared-brazilsouth-mgmt"
###Deletando regras existentes (criadas pelo templete, pode-se alterar diretamente no template tb)
az network nsg rule delete -g "${RG_Name02}" --nsg-name "nsg-fwedge-shared-brazilsouth-mgmt" -n "AllowAllInbound"
az network nsg rule delete -g "${RG_Name02}" --nsg-name "nsg-fwedge-shared-brazilsouth-mgmt" -n "AllowAllOutbound"
##Criando regras NSG MGMT HTTPS
az network nsg rule create -g "${RG_Name02}" --nsg-name "nsg-fwedge-shared-brazilsouth-mgmt" -n "Allow-MGMT-HTTPS" --priority "100" \
--source-address-prefixes "179.215.182.42/32" --source-port-ranges "*" \
--destination-address-prefixes "10.126.0.96/27" --destination-port-ranges "443" --access "Allow" \
--protocol "TCP" --description "Acesso liberado a snet management"
##Alterando regras NSG MGMT SSH
az network nsg rule create -g "${RG_Name02}" --nsg-name "nsg-fwedge-shared-brazilsouth-mgmt" -n "Allow-MGMT-SSH" --priority "101" \
--source-address-prefixes "179.215.182.42/32" --source-port-ranges "*" \
--destination-address-prefixes "10.126.0.96/27" --destination-port-ranges "22" --access "Allow" \
--protocol "TCP" --description "Acesso liberado a snet management"
###Anexando Subnet Internal a Route Table
az network vnet subnet update -g "${RG_Name02}" -n "snet-fwedge-shared-brazilsouth-Internal" --vnet-name "vnet-fwedge-shared-brazilsouth" --route-table "rt-fw-edge-shared-brazilsouth-internal"
###Inciando as VM01/02
az vm start -g "${RG_Name02}" -n "fwedge01"
az vm start -g "${RG_Name02}" -n "fwedge02"
Agora tudo pronto, vamos acessar nosso FGT, iremos acesso pelo IP Publico “pip-fwedge-mgmt-a”
Vamos as configurações iniciais
Temos nosso Dashbord inicial
Vamos verificar nosso HA Sync
Vamos em System / HA
Tudo certo
Vamos agora em “Network” “Static Routes”
Por padrão teremos essas rotas (Isso pode ser editado/alterado no template)
Vamos fazer algumas modificações e deixar desta forma
Basicamente, iremos remover a rota “168.63.129.16/32” “10.126.0.1” “port1”
Toda e qualquer nova rede que for criar e for feito peering com a rede do Firewall-EDGE 10.126.0.0/24 teremos que criar a “Static Route”
Vamos a um exemplo, em nosso ambiente azure temos a Vnet “10.188.0.0/24”, iremos fazer um peering com ela e add route static no FGT.
Sempre usaremos a port2, pois ela é nossa “LAN-Trust”, o gw 10.126.0.33 é o gw do azure (já expliquei em outros posts como funciona a rede no azure, que ele guarda para si os 3 primeiros IP de cada subnet) Agora nossa Static Route ficará desta forma
Vamos agora criar um regra de acesso a internet “Policy & Objects” “Firewall Policy”
Create New
Clique em “ok”
Agora nos temos uma regra que vem da nossa interface “LAN-Trust” para a nossa interface “WAN-UnTrust”
Agora vamos add essa vnet/subnet ao nosso Route Table
Assim ficou nosso arquivo
**(Esta vnet tem que possui peering com nossa rede do firewall edge)
Vamos ao teste
Criamos a seguinte vm “vm-lan-trust-01” subnet 10.188.0.0/26 IP: 10.188.0.4
Estamos dentro da nossa VM Trust
vamos fazer um teste de curl para http//ifconfig.me e monitor em nosso firewall
Como podem ver em nossa VM Trust, trouxe o IP da interface WAN-UnTrust e todo trafego passou pelo nossa firewall
Agora um outro cenário, temos parceiros/clientes que precisam acessar nossas aplicações ou um ambiente de “Transfer” (Connect Direct IBM, SFTP, FTPS, SMB) para isso acontecer de forma segura podemos estabelecer Tuneis IPSec com nossas Parceiros/Clientes e desta forma liberar o acesso de forma segura. Outra cenario seria a publicação de uma aplicação interna e expo-la para internet, temos varias possibilidade de forma segura em nossa ambiente.
Agora algumas explicações referente aos .json
Linha 5/6: usuário de acesso ao firewall Linha 8/9: senha Linha 12: prefixo do firewall Linha 15: versão do licenciamento, neste exemplo seria PayAsGo (Pague pelo uso, se vc possui BYOL, altere para o valor que consta no template) Linha 18: ultima versão do firmware Linha 21: Size VM Linha 36: nome do IP Publico do External LB Linha 39: RG Linha 42: IP Publico MGMT FGT A Linha 45: RG Linha 48: IP Publico MGMT FGT B Linha 51: RG
Continuando
Linha 57: nome da vnet (o proprio template cria a vnet) Linha 60: RG Linha 63: CIDR da Vnet Linha 66: Nome da Vnet External Linha 69: CIDR da Subnet External
As outras são auto explicativas
***Nunca esquecer de add Static Route em nosso firewall, sempre add as subnet no arquivo Route Table, sempre fazer peering para novas Vnets.
Neste post iremos fazer o deploy de Palo Alto (Version 9) em HA “session synchronization”, utilizando um template modificado (adequado as minhas preferencias para este artigo de exemplo). Nesta topologia/arquitetura de rede colocamos o Palo Alto para ser a rota default de todas as nossas vnets que estão no azure (neste exemplo somente “Trust”, mas nada impede de colocar varias redes com “Peering”) com isso toda entrada ou saida de dados passa obrigatóriamente pelo Palo Alto, essa arquitetura não esta certa nem errada, ai vai do compliance de cada empresa, time de segurança, time de rede e claro do orçamento de cada um. Mas isso não siginifica que penso como ambiente OnPremises somente, que não penso em nuvem, isso é somente uma arquitetura/topologia que muitas empresas que estão em Cloud (Azure,AWS,GCP) utilizam.
Agora vamos colocar a mão na massa.
Nos teremos os seguintes componentes:
2x VMs (PAN OS) Standard D3 v2 – Availability zone 1 8x Interfaces de rede (4 para cada VM) denomindas eth0/1/2/3, eth0=interface management, eth1=interface UnTrust, eth2= Interface Trust e eth3=interface HA 1x Vnet com CIDR 10.110.0.0/22 (aqui vai da sua rede e crescimento previsto) 1x Network Security Group (anexado a snet mgmt) 2x IPs Publicos (uma para cada VM anexado a eth1 para gerencia), este depende do seu acesso a rede. 3x IPs Publicos, 1 para NAT OUTBOUND, 1 para NAT INBOUND AppGW e 1 para NAT INBOUND JUMP 2x Discos HDD (um para cada VM)
Vamos as nomenclaturas, utilizei a recomendada pela MS Azure link vmfwedge01 vmfwedge02 pip-vmfwedge001-shared-brazilsouth-mgmt pip-vmfwedge002-shared-brazilsouth-mgmt pip-fw-edge-shared-brazilsouth-wan-01 pip-fw-edge-shared-brazilsouth-wan-02 pip-fw-edge-shared-brazilsouth-wan-03 nsg-fw-edge-shared-brazilsouth nic-fw-edge-vmfwedge001-shared-brazilsouth-eth0 nic-fw-edge-vmfwedge001-shared-brazilsouth-eth1 nic-fw-edge-vmfwedge001-shared-brazilsouth-eth2 nic-fw-edge-vmfwedge001-shared-brazilsouth-eth3 nic-fw-edge-vmfwedge002-shared-brazilsouth-eth0 nic-fw-edge-vmfwedge002-shared-brazilsouth-eth1 nic-fw-edge-vmfwedge002-shared-brazilsouth-eth2 nic-fw-edge-vmfwedge002-shared-brazilsouth-eth3 vmfwedge001_OsDisk_1_xxxxx vmfwedge002_OsDisk_1_xxxxx vnet-fw-edge-shared-brazilsouth
Aqui os links para baixar os templates utlizados neste artigo
No arquivo acima teremos uma template.json e dois parameters.jons
No arquivo “parametersFile.json” nos temos todas as referencias para criação da VM, Vnet, RG, etc…. vamos a uma preve explicação sobre o template
Linha 9: IP para liberação de acesso a snet de mgmt (para liberar somente seu bloco coloque neste formato XXX.XXX.XXX.XXX/XX), para liberar tudo colocar 0.0.0.0/0, mas cuidado, isso libera acesso total a interface mgmt do palo alto, não recomendo deixar “any”. Linha 12: nome do NSG a ser utilizado na snet de mgmt, item obrigatório Linha 15: Não precisa alterar Linha 18: Nome da VM (Virtual machine) pode usar a sua escolha, recomendo se alterar esse nome, para alterar os nomes das interfaces de rede para ficar tudo no mesmo padrão. Linha 21: ultima versão do palo alto, neste caso a 9 Linha 24: Site da VM, neste exemplo “Standard_D3_v2”, pois não iremos precisar de mais que 4 interfaces de rede Linha 27:: Nome da Vnet a ser criada para utilização no Palo Alto Linha 33: CIDR da rede neste exemplo “10.110.0.0/22” Linha 36: nome do Resource Group, neste exemplo “rg-fw-edge-shared-brazilsouth”, pode ser alterado, porém será necessário alterar no script bash abaixo Linha 39: nome da snet de mgmt snet-fw-edge-shared-brazilsouth-00 Linha 42: nome da snet de UnTrus snet-fw-edge-shared-brazilsouth-01 Linha 45: nome da snet de Trust snet-fw-edge-shared-brazilsouth-02 Linha 48: CIDR snet mgmt 10.110.252.0/25 Linha 51: CIDR snet UnTrust 10.110.252.128/25 Linha 54: CIDR snet Trust 10.110.253.0/25
Agora mais alguns parametros
Linha 57: deixe desta forma, pois iremos utilizar usuário e senha para conectar no Palo Alto Linha 60: nome do usuário admin, neste exemplo FWSYS (fica a seu critério) Linha 63: senha, fica a seu critério Linha 69: nome do resource group a ser utilizado, neste exemplo “rg-fw-edge-shared-brazilsouth”, ele será criado pelo script logo abaixo. Linha 75: IP Publico da Interface de MGMT, neste exemplo “pip-vmfwedge001-shared-brazilsouth-mgmt”, será criado pelo script logo abaixo, se alterar o nome será necessário alterar no script bash. Linha 78: Static para utilizar IP fixo Linha 83: muito importante, neste linha difinimos o “Availability zone”, neste exemplo “1” As demais linha não precisam se preocupar.
Agora vamos para o arquivos “parametersFiles2.json”
Basicamente deve ser alterado as linhas Linha 18: nome da vm neste exemplo “vmfwedge02”
Linha 75: nome do IP publico da interface de MGMT neste exemplo “pip-vmfwedge002-shared-brazilsouth-mgmt”
Pronto agora vamos ao deploy via bash (CLI Azure)
Será necessário deixar os arquivos dentro de uma mesma pasta/local
########Declarando variaveis
##Declarando Variaveis (Obrigatório)
###Declarando Variaveis Subscriptions (Nome da sua Subscription Azure)
export Subscription_Name="Santana Corp"
###Variaveis da VM (nomes das VM, igual do template)
export VM_Name_01='vmfwedge001'
export VM_Name_02='vmfwedge002'
###Declarando Variaveis Resource Groups
export RG="rg"
export Name_01="fw-edge"
export Environment="shared"
export Number="0"
export Location_00="brazilsouth"
export RG_Name_FULL_01="${RG}"-"${Name_01}"-"${Environment}"-"${Location_00}"
###Declarando Variaveis Região
export Location="brazilsouth"
###Declarando Variaveis de Rede (Vnet) (Igual do template)
export Vnet="vnet"
export Vnet_Name_FULL="${Vnet}"-"${Name_01}"-"${Environment}"-"${Location}"
export CIDR_01="10.110.252.0/22"
export Subnet_Name_00="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"0
export Subnet_Name_01="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"1
export Subnet_Name_02="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"2
export Subnet_Name_03="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"3
export Subnet_Name_04="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"4
export Subnet_Name_05="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"5
export Subnet_Name_06="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"6
export Subnet_Name_07="snet"-"${Name_01}"-"${Environment}"-"${Location}"-"${Number}"7
export prefix_00="10.110.252.0/25"
export prefix_01="10.110.252.128/25"
export prefix_02="10.110.253.0/25"
export prefix_03="10.110.253.128/25"
export prefix_04="10.110.254.0/25"
export prefix_05="10.110.254.128/25"
export prefix_06="10.110.255.0/25"
export prefix_07="10.110.255.128/25"
###Declarando variaveis da interfaces network
export Interface_NIC='nic'
export Interface_Name="${Name_01}"
export Interface_Environment="${Environment}"
export Interface_Location="${Location_00}"
export Interface_ETH='eth'
export Interface_00='0'
export Interface_01='1'
export Interface_02='2'
export Interface_03='3'
export Interface_04='4'
export Interface_05='5'
export Interface_06='6'
export Interface_07='7'
export Interface_Name_Full_00="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_00}"
export Interface_Name_Full_01="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_01}"
export Interface_Name_Full_02="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_02}"
export Interface_Name_Full_03="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_03}"
export Interface_Name_Full_04="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_04}"
export Interface_Name_Full_05="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_05}"
export Interface_Name_Full_06="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_06}"
export Interface_Name_Full_07="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_01}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_07}"
#### VM02
export Interface_Name_Full_13="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_00}"
export Interface_Name_Full_14="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_01}"
export Interface_Name_Full_15="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_02}"
export Interface_Name_Full_08="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_03}"
export Interface_Name_Full_09="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_04}"
export Interface_Name_Full_10="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_05}"
export Interface_Name_Full_11="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_06}"
export Interface_Name_Full_12="${Interface_NIC}"-"${Interface_Name}"-"${VM_Name_02}"-"${Interface_Environment}"-"${Interface_Location}"-"${Interface_ETH}""${Interface_07}"
###Variaveis de IPs Publicos
export IP_01="pip"
export ZONE="1"
export IP_02="mgmt"
export SKU="Standard"
export Number_01="01"
export Number_02="02"
export Number_03="03"
export IP_03="wan"
export Name_Object01="fw-edge"
###Variaveis da ifconfig eth
export IFCONFIG_Name="ipconfig"
export IFCONFIG_Number01="1"
export IFCONFIG_Number02="2"
export IFCONFIG_Number03="3"
export IFCONFIG_Number04="4"
###Variaveis interface de rede
export INT_01="nic"
export INT_02="${Name_01}"
export INT_03="${VM_Name_01}"
export INT_11="${VM_Name_02}"
export INT_04="${Environment}"
export INT_05="${Location_00}"
export INT_06="eth"
export INT_07="0"
export INT_08="1"
export INT_09="2"
export INT_10="3"
export INT_Name_01="${INT_01}"-"${INT_02}"-"${INT_03}"-"${INT_04}"-"${INT_05}"-"${INT_06}""${INT_08}"
export INT_Name_02="${INT_01}"-"${INT_02}"-"${INT_03}"-"${INT_04}"-"${INT_05}"-"${INT_06}""${INT_09}"
export INT_Name_03="${INT_01}"-"${INT_02}"-"${INT_03}"-"${INT_04}"-"${INT_05}"-"${INT_06}""${INT_07}"
export INT_Name_04="${INT_01}"-"${INT_02}"-"${INT_11}"-"${INT_04}"-"${INT_05}"-"${INT_06}""${INT_07}"
###Declarando Variaveis Tags
export Description="Departamento"
export Value_Description="Redes/Telecom/Segurança/Infraestrutura"
export Cost_Center="Centro de Custo"
export Cost_Center_Value="Redes/Telecom/Segurança/Infraestrutura"
export Support_Description_Description="E-mail Suporte"
export Support_Description_Value="[email protected]"
####Selecionar subscription
az account set --subscription "${Subscription_Name}"
####Criando Resource Group Firewall EDGE Shared
az group create -n "${RG_Name_FULL_01}" -l "${Location}" --tags "${Description}"="${Value_Description}" "${Cost_Center}"="${Cost_Center_Value}" "${Support_Description_Description}"="${Support_Description_Value}"
###Create IPs Publicos
az network public-ip create -g "${RG_Name_FULL_01}" -n "${IP_01}"-"${VM_Name_01}"-"${Environment}"-"${Location_00}"-"${IP_02}" --sku "${SKU}" --zone "${ZONE}"
az network public-ip create -g "${RG_Name_FULL_01}" -n "${IP_01}"-"${VM_Name_02}"-"${Environment}"-"${Location_00}"-"${IP_02}" --sku "${SKU}" --zone "${ZONE}"
az network public-ip create -g "${RG_Name_FULL_01}" -n "${IP_01}"-"${Name_Object01}"-"${Environment}"-"${Location_00}"-"${IP_03}"-"${Number_01}" --sku "${SKU}" --zone "${ZONE}"
az network public-ip create -g "${RG_Name_FULL_01}" -n "${IP_01}"-"${Name_Object01}"-"${Environment}"-"${Location_00}"-"${IP_03}"-"${Number_02}" --sku "${SKU}" --zone "${ZONE}"
az network public-ip create -g "${RG_Name_FULL_01}" -n "${IP_01}"-"${Name_Object01}"-"${Environment}"-"${Location_00}"-"${IP_03}"-"${Number_03}" --sku "${SKU}" --zone "${ZONE}"
####Criando Virtual Network (Vnet)
az network vnet create -g "${RG_Name_FULL_01}" -n "${Vnet_Name_FULL}" --address-prefix "${CIDR_01}" -l $Location --tags "${Description}"="${Value_Description}" "${Cost_Center}"="${Cost_Center_Value}" "${Support_Description_Description}"="${Support_Description_Value}"
####Criando Subnet
az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_00}" --address-prefixes "${prefix_00}"
az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_01}" --address-prefixes "${prefix_01}"
az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_02}" --address-prefixes "${prefix_02}"
####Deploy Palo Alto Template
az deployment group create -g "${RG_Name_FULL_01}" --template-file template.json --parameters @parametersFile.json
###Desalocando a VM (aqui iremos desligar/desalocar a VM)
az vm deallocate -g "${RG_Name_FULL_01}" -n "${VM_Name_01}"
####Criando restantes das Subnets
az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_03}" --address-prefixes "${prefix_03}"
###az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_04}" --address-prefixes "${prefix_04}"
###az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_05}" --address-prefixes "${prefix_05}"
###az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_06}" --address-prefixes "${prefix_06}"
###az network vnet subnet create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" -n "${Subnet_Name_07}" --address-prefixes "${prefix_07}"
####Criando interfaces de rede v2 (interface de rede HA eth3)
az network nic create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" --subnet "${Subnet_Name_03}" -n
#### Adicionando interfaces Network
az vm nic add --nics "${Interface_Name_Full_03}" -g "${RG_Name_FULL_01}" --vm-name "${VM_Name_01}"
###Iniciando a VM01
az vm start -g "${RG_Name_FULL_01}" -n "${VM_Name_01}"
###################
####Deploy Palo Alto Template segunda VM02
az deployment group create -g "${RG_Name_FULL_01}" --template-file template.json --parameters @parametersFile2.json
###Desalocando a VM02
az vm deallocate -g "${RG_Name_FULL_01}" -n "${VM_Name_02}"
####Criando interfaces de rede v2 (VM02)
az network nic create -g "${RG_Name_FULL_01}" --vnet-name "${Vnet_Name_FULL}" --subnet "${Subnet_Name_03}" -n "${Interface_Name_Full_08}" --ip-forwarding
#### Adicionando interfaces Network vm2
az vm nic add --nics "${Interface_Name_Full_08}" -g "${RG_Name_FULL_01}" --vm-name "${VM_Name_02}"
###Inciado a VM02
az vm start -g "${RG_Name_FULL_01}" -n "${VM_Name_02}"
###Anexando NSG SNET 00
az network vnet subnet update -g "${RG_Name_FULL_01}" -n "${Subnet_Name_00}" --vnet-name "${Vnet_Name_FULL}" --network-security-group "nsg-fw-edge-shared-brazilsouth"
###Configurando IPs interface eth1
az network nic ip-config create -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number02}" --nic-name "${INT_Name_01}" --public-ip-address "${IP_01}"-"${Name_Object01}"-"${Environment}"-"${Location_00}"-"${IP_03}"-"${Number_01}"
az network nic ip-config create -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number03}" --nic-name "${INT_Name_01}" --public-ip-address "${IP_01}"-"${Name_Object01}"-"${Environment}"-"${Location_00}"-"${IP_03}"-"${Number_02}"
az network nic ip-config create -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number04}" --nic-name "${INT_Name_01}" --public-ip-address "${IP_01}"-"${Name_Object01}"-"${Environment}"-"${Location_00}"-"${IP_03}"-"${Number_03}"
##Declaranado Variaveis para Fixar IP (eht1)
NIC_ID001=$(az network nic show --name "${INT_Name_01}" -g "${RG_Name_FULL_01}" --query id --output tsv)
##Declarando varivel para utilizar IP Fixo existente (eht1)
IP_ID001=$(az network nic ip-config show -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number02}" --nic-name "${INT_Name_01}" --query privateIpAddress --output tsv)
IP_ID002=$(az network nic ip-config show -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number03}" --nic-name "${INT_Name_01}" --query privateIpAddress --output tsv)
IP_ID003=$(az network nic ip-config show -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number04}" --nic-name "${INT_Name_01}" --query privateIpAddress --output tsv)
###Fixando o IP (eht1)
az network nic ip-config update -g "${RG_Name_FULL_01}" --nic-name "${INT_Name_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number02}" --private-ip-address $IP_ID001
az network nic ip-config update -g "${RG_Name_FULL_01}" --nic-name "${INT_Name_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number03}" --private-ip-address $IP_ID002
az network nic ip-config update -g "${RG_Name_FULL_01}" --nic-name "${INT_Name_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number04}" --private-ip-address $IP_ID003
###Configurando IPs interface eth2
az network nic ip-config create -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number02}" --nic-name "${INT_Name_02}"
##Declaranado Variaveis para Fixar IP (eht2)
NIC_ID002=$(az network nic show --name "${INT_Name_02}" -g "${RG_Name_FULL_01}" --query id --output tsv)
##Declarando varivel para utilizar IP Fixo existente (eht2)
IP_ID004=$(az network nic ip-config show -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number02}" --nic-name "${INT_Name_02}" --query privateIpAddress --output tsv)
###Fixando o IP (eht1)
az network nic ip-config update -g "${RG_Name_FULL_01}" --nic-name "${INT_Name_02}" -n "${IFCONFIG_Name}""${IFCONFIG_Number02}" --private-ip-address $IP_ID004
##Declaranado Variaveis para Fixar IP VM01(eht0)
NIC_ID005=$(az network nic show --name "${INT_Name_03}" -g "${RG_Name_FULL_01}" --query id --output tsv)
##Declarando varivel para utilizar IP Fixo existente (eht0)
IP_ID005=$(az network nic ip-config show -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number01}" --nic-name "${INT_Name_03}" --query privateIpAddress --output tsv)
###Fixando o IP (eht0)
az network nic ip-config update -g "${RG_Name_FULL_01}" --nic-name "${INT_Name_03}" -n "${IFCONFIG_Name}""${IFCONFIG_Number01}" --private-ip-address $IP_ID005
############
##Declaranado Variaveis para Fixar IP VM02(eht0)
NIC_ID006=$(az network nic show --name "${INT_Name_04}" -g "${RG_Name_FULL_01}" --query id --output tsv)
##Declarando varivel para utilizar IP Fixo existente (eht0)
IP_ID006=$(az network nic ip-config show -g "${RG_Name_FULL_01}" -n "${IFCONFIG_Name}""${IFCONFIG_Number01}" --nic-name "${INT_Name_04}" --query privateIpAddress --output tsv)
###Fixando o IP (eht0)
az network nic ip-config update -g "${RG_Name_FULL_01}" --nic-name "${INT_Name_04}" -n "${IFCONFIG_Name}""${IFCONFIG_Number01}" --private-ip-address $IP_ID006
Agora nos temos nos objetos criados, vamos acessar via IP da interface MGMT do VM01, sempre com https://XXX.XXX.XXX.XXX A tela inicial apresentada
Agora vamos as configurações para Palo Alto
1-) Interfaces de rede, clique em “Network” depois “Interfaces”
Agora vamos as configurações Clique em “ethernet1/1” será nossa interface de “UnTrust”
Em interface Type altere para “Layer3”, depois em IPV4 add o IP da interface eth1, neste caso 10.110.252.132, 10.110.252.134,10.110.252.135,10.110.252.136
Clique OK
Agora vamos para “ethernet1/2” nossa interface “Trust”
Mesmo procedimentos, porém com os IPs 10.110.253.4 e 10.110.253.6
Agora iremos na ethernet1/3, nossa interface de HA
Nesta somente deixa o “Interface Type” como “HA” e clique em “OK”
Agora vamos criar nossas “Zonas”
Clique em “Zone” e depois em “add”
Primeira zona “UnTrust”, Type “L3” interface “ethernet1/1”, clique em “ok”
Segunda “zona”
Name: “Trust” Type “Layer3” interfaces “ethernet1/2”, clique em “ok”
Vamos criar nossa VR (Virtual Routers), vá em “Network” depois em “Virtual Routers”
Vamos utilizar a “Default”, clique em “Default”
Route Settings, Interfaces Add
Depois clique em Static Routes, add
Name: UnTrust (Nossa zona não segura “Internet” Destionation: 0.0.0.0/0 tudo que ele não conhecer irá mandar para esta ROTA Interface: “ethernet1/1” Next Hop: IP Address IP: 10.110.252.129 Agora pórque este IP? Vamos a explicação, a subnet (snet) utilizada nesta interface foi a: “snet-fw-edge-shared-brazilsouth-01” que tem seu CIDR “10.110.252.128/25” ou seja:
Temos o ID da rede 10.110.252.128/25 Inicia em 10.110.252.129 e vai até 10.110.252.254 Brodcast 10.110.252.255 No Azure ele toma para si (se apodera) dos 3 primeiros IPs, neste exemplo: 10.110.252.129 10.110.252.130 10.110.252.131
O IP 10.110.252.132 esta em nossa interface eth1, por isso o gateway neste snet (Subnet) é o primeiro IP da rede neste caso 10.110.252.129, clique em OK
Vamos add nossa rota interna (Nossa rede interna) Neste exemplo, somente iremos add a snet (subnet snet-fw-edge-shared-brazilsouth-02 10.110.253.0/25)
Aqui a lógica para o IP é a mesma
Agora vamos efetivar nossas configurações, clique em “Commit”
Agora veja em “network”
As interfaces estão “up”
Agora vamos as configurações na segunda VM (caixa)
Vamos em “network” e depois em “interfaces”, neste só iremos configurar isso nada mais.
Em “ethernet1/1”
Interface Type: Layer3 IP: 10.110.252.133, seguindo nossa CIDR: snet-fw-edge-shared-brazilsouth-01 10.110.252.128/25, clique em OK
Com nosso AppRegistration criado, vamos add em nossa Palo Alto, VM01 Vamos em “Devices”
VM Series
Azure HA Configuration, clique na roda dentada
Vamos iniciar o preenchimento
Resource Group: é o que criamos em nosso script, clique em validade
Se tudo ocorreu certo, deve recever essa mensagem
Clique em “close” depois em “ok”
Continuemos a nossa configuração de HA
Em “High Availability”
Setup, clique na roda dentada
Habilite “Enable HA” Group ID “1” Description “HA Azure” Mode “Active Passive” Habilite “Enable Config Sync” Peer HA1 IP Address “10.110.252.5” *IP da interfaces mgmt da segunda VM” Clique em “ok”
Em “Data Link (HA2), clique na roda dentada
Seguindo a mesma lógica para endereçamento IP Azure
Port “ethernet1/3 IPv4 “10.110.253.132” IP da interface eth3 da VM01 Netmask “255.255.255.128” mascara da snet Gateway “10.110.253.129” gateway da snet Clique em “ok”
Se tudo deu certo, teremos esta tela
Vamos efetivar nossas configurações
Clique em “Commit”
Agora vamos em “Dashbord”
Vamos add “Widgets” de HA
Estamos quase lá
Agora vamos confirar a segunda VM
Na segunda VM vamos em “Devices” “High Availability”
Setup, clique na roda dentada
Habilite “Enable HA” Group ID “1” Description “HA Azure” Mode “Active Passive” Habilite “Enable Config Sync” Peer HA1 IP Address: 10.110.252.4 *IP da interface mgmt da vm01 Clique em OK
Em “Data Link (HA2), clique na roda dentada
Port “ethernet1/3” IPv4 “10.110.253.133” ip da inteface eth3 Netmask: 255.255.255.128 Gateway “10.110.253.129”
Seguindo a mesma lógica de endereçamento azure
Clique em OK
Agora vamos efetivas nossas configurações, clique em “Commit”
Em “Dashbord”
Vamos add “Widgets” HA
Veja como esta
Agora vamos na VM01 em Dashbord
Vamos fazer o Sync, clique em “Sync to peer”
Clique em “yes”
Pronto, nossa HA esta completo
Veja em Dashbord da VM01 e VM02
Agora vamos criar uma regra de NAT para saída (OUTBOUND) para internet
Vamos em “Policies” depois em “Nat” e clique em ADD
General Name “Trust-To-UnTrust” Description “NAT para acesso a internet utilizando o IP Publico 20.206.248.193” este IP esta na eth1 Tags “NAT, UnTrust, Internet” NAT Type “ipv4”
Original Packet
Souce Zone “Trust” nossa rede interna Destination Zone “UnTrust” Internet Destination Interface “ethernet1/1” nossa interface UnTrust Source Address “10.110.253.0/25” neste momento somente a “snet” “Trust” Destionation Address “Any” neste exemplo, fica a seu critério esta liberação
Translated Packet
Translation Type “Dynamic IP And Port” Address Type “Interface Address” Interface “ethernet1/1” nossa interface “UnTrust” onde temos algums IPs IP Address “10.110.252.134” este IP esta atribuido a interface eth1, no azure não atribuimos o IP publico diretamente e sim o privado que tem o publico associado
Veja na interface eth1 o IP 10.110.252.134 esta associado ao IP 20.206.248.193
Clique em “ok”
Agora vamos criar uma regra de saida no firewall para acessar a internet
Vamos em “Security”, clique em “add”
General Name “Trust-To-UnTrust” Rule Type “universal (default) Description “Regra de acesso a internet somente http e https” Tags “acesso a internet, internet, rule, security, police”
Agora em Source Source Zone “Trust” Source Address “10.110.253.0/25”
Não itemos utilizar “User”, vamos direto para “Destination” Destination Zone “UnTrust” Destination Address “Any” fica a seu critério liberar “any” ou não
Agora vamos para “Application”
Principio de segurança, mas fica a seu critério liberar ou não Application “ssl” “telnet” “web-browsing”
Vamos para “Service/URL Category”
Mais uma vez fica a seu critério tal liberação Service “http” “https” URL Category “internet-communication-and-telephony” “online-storage-and-backup” “web-hosyting”
Vamos para action
Action “Allow”
Log Setting “Log at Session Start” Log Setting “Log at Session End”
Clique em “ok”
Agora vamos efetivar nossas configurações, clique em “commit”
Agora vamos dar continuidade em nossa configuração da arquitetura/topologia de rede Azure
Agora precisamos criar um arquivo de roteamento (Route Table”
Criar Azure
Escolha sua subscription Resource Group Region Name Propagate gateway routes “yes”
Agora vamos configurar nosso arquivo de roteamento
Vamos criar uma unica rota, pois nesta arquitetura/topologia tudo passa pelo Palo Alto em HA
Name “Default” Address Prefix “0.0.0.0/0” Virtual Applicance “10.110.253.6” segundo IP da nossa interface eth2 (Trust)
Agora vamos add um subnet (snet), neste exemplo somente a: vnet-fw-edge-shared-brazilsouth 10.110.253.0/25
Nosso arquivo de roteamento ficou desta forma
Agora qualquer solicitação da snet 10.110.253.0/25 vai para “Trust” no palo alto para ser tratada (liberado ou não), um simples “ping” terá que ter regra para liberação.
Neste exemplo liberamos somente o acesso a internet utilizar http e https
*Toda configuração feita na VM01 replica para VM02″
Veja como esta nossa arquitetura/topologia
Agora vamos criar uma regra de NAT para INBOUND, isso mesmo, vamos publica uma aplicação neste exemplo denomina “Site” que esta atrás de um “Application Gateway” (Rede Interna).
Vamos lá (A parte de criação/configuração do AppGw não será apresentanda aqui, pode ser usar um load balance tradicional)
Vamos as regras no Palo Alto, em “Policies” “Nat”, clique em “add
Vamos criar um NAT de INBOUND
Name “UnTrust-To-AppGW” Description “Regra para publicação da app “Site” Tags “UnTrust”, “NAT”, “Internet”
Original Packet
Source Zone “Untrust” Destination Zone “UnTrus” Destination Interface “Any” Source Address “Any” pois estamos publicando para internet Destination Address “10.110.252.135” IP da interface eth1 (segundo IP com IP publico)
Translated Packet
Translation Type “Static IP” Translation Address “10.110.253.126” IP do AppGw Translation port “” deixar em branco (NAT 1:1)
Clique em “ok”
Se tudo esta correto verá tera essa visão
Agora vamos criar a regra de seguranã/firewall
Em “Seguriry”, add
General
Name “UnTrus-To-AppGw” Rule Type “universal” Description “Regra para publicação da aplicação Site6” Tags “UnTrust” “Internet” “Rule”
Source
Source Zone “UnTrust” Source Address “Any” publicando para internet
Destination
Destination “Trust” Destionation Address “10.110.253.135” IP que esta na interface eth1 com IP publico
Application
Applications “web-browsing” principio de segurança
Servive/URL Category
Service “http’ e “https” “principio de segurança” URL Category “any”
Action
Action “Allow” log Setting “Log at Session Start” “Log at Session End”
Clique em “ok”
Se tudo correu bem esta vendo esta tela
Agora vamos efetivar nossas configurações, clique em “Commit”
Pronto, agora qual alguém chamar nossa aplicação “site6” https://site6.supportbrazil.com irá para interface eth1 do nosso Palo Alto, dentro dele fará um NAT para nosso AppGw com IP 10.110.253.126 e a partir dai o AppGw irá enviar os pacotes para as VMs.
E se por algum motivo a VM01 (Caixa principal do Palo Alto) ficar indisponivel, todos os IPs secundarios das interfaces ETH1 e ETH2 seram migrados automaticamente para a caixa secundaria
Espero ter contribuido para sua arquitetura/Topologia mais segura e concentrada em um unico ponto, lembrando que estamos com Palo Alto HA e Availability Zone.
Você precisa fazer login para comentar.