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 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.
Como vimos em nossa seria de artigos de criação de vnet, peering, bgp e VPN IPSec com BGP, vamos criar mais uma vnet em nossa infraestrutura já existente. Veja nossos artigos nas sequencia:
Com isso concluimos nossa seria de Vnet com peering e propagação BGP, a cada vnet nova criada com peering (utilizando as configuração aqui exibidas) não é necessário fazer mais nada em nosso fortigate ou Gateway de VPN, um lembrete muito importante as redes não podem se sobscrever (Over lapping).
Rede WiFi de visitantes –> Atualização IOS Apple 8.1 –> Download concluído com sucesso –> IOS Apple faz mais uma checagem antes do Update, neste momento recebemos a mensagem, “Não possível fazer atualização, por favor verificar sua conexão com Internet.
Olhando os logs do firewall obtive o seguinte erro: Ethernet Header Ether Type: IP(0x800), Src=[f0:db:f8:96:07:82], Dst=[00:17:c5:e0:12:48] IP Packet Header IP Type: TCP(0x6), Src=[192.168.31.134], Dst=[17.151.36.30] TCP Packet Header TCP Flags = [ACK,PSH,], Src=[49534], Dst=[80], Checksum=0x20e Application Header HTTP Value:[0] DROPPED, Drop Code: 41, Module Id: 26, (Ref.Id: _4996_uyHtJcpfngKrRmv) 2:2)
Drop Code: 41 IDP Detection
Solução rápida, colocar sua rede WiFi na “Excluision List IPS” e habilitar em Firewall –> App Control Advanced –> Configure App Control Setting –> “Enable Application Control Exclusion List” depois –> “Use IPS Excluison List”
Vamos criar um regra de NAT para publicarmos um site interno em nosso servidor WEB passando por nosso Firewall (Fortinet), neste exemplo vamos utilizar:
1–> Um servidor Windows Server 2008 R2 com IIS – IP Privado 10.10.10.144
2–> Um Fortinet (Firewall), vamos utilizar duas interfaces uma Privada (LAN) 10.10.10.100 e uma interface Publica (WAN) IP 172.16.0.3
Neste exemplo temos a seguinte configuração de IP público 172.16.0.0/25 ou seja 172.16.0.1 – 172.16.0.126
Agora vamos as configurações
Interface LAN do firewall port1
IP 10.10.10.100/24
Interface WAN port3
IP 172.16.0.3/27
Agora vamos criar os objetos no Firewall
Clique em “Firewall Objects”
Depois em “Address” e “Creat New”
Name: Vamos usar o nome do servidor, neste exemplo “WIN-O4SBIGBT2RR” Color: A sua escolha Type: Subnet Subnet / IP Range: 10.10.10.144 (IP de nosso servidor) Interface: Escolha a interface LAN port1 Show in Address List: Vamos deixar habilitado Clique em OK
Agora temos nosso objeto Servidor criado
Agora vamos criar para Virtual IP
Em Firewall Objects clique em Virtual IP
Clique em “Create New”
Name: Vamos colocar um nome amigável, neste exemplo “Port_80_WEB” External IP Address/Range: vamos colocar um IP válido neste nossa range de IP’s públicos, neste caso 172.16.0.5-172.16.0.5 Mapped IP Address/Range: vamos colocar o IP de nosso servidor WEB 10.10.10.144 Port Forwarding: vamos habilitar Protocol: Vamos marcar “TCP” External Service Port: vamos colocar a porta 80, lembrando que essa será a porta externa para comunicação. Map to Port: vamos colocar 80, lembrando que aqui é a porta interna do servidor
Agora em “Firewall Objects” vamos em IP POLL
Clique agora em “Creat New”
Name: um nome amigável neste exemplo PUBLIC_172_16_0_5 External IP Range/Subnet: 172.16.0.5-172.16.0.5 Type: vamos habilitar “Overload” ARP Reply: vamos deixar habilitado
Agora vamos criar as politicas, clique em “Policy”
Clique em “police” – Creat New” (Está será a regra de saída OUT)
Police Type: Firewall Police Subtype: Address Incoming interface: port1(LAN) Source Address: nosso servidor WEB “WIN-04SBIGBT2RR” Outgoing Interface: port3 (WAN2) Destination Address: all Schedule: always Service: HTTP (liberamos somente esta porta 80, pois neste servidor só roda o IIS), desta forma fica mais seguro Action: ACCEPT Enable NAT: habilite esta opção Use Dynamic IP Pool: está opção tem que ser marcada, aqui vamos colocar o IP público para poder funcionar a regra de NAT neste exemplo como já criamos em IP Pool “PUBLIC_172_16_0_5 Log Allowed Traffic: habilite está opção para podermos monitorar o trafego que passando pelo Firewall.
Agora vamos criar a regra de entrada “IN”
Clique em “Policy” – “Create New”
Policy Type: Firewall Policy Subtype: Address Incoming Interface: port3 (WAN) Source Address: “all” aqui decidimos da onde vem o trafego, podemos determinar algumas range’s de IP, mas não é neste caso, deixaremos com “ALL” qualquer lugar Outgoing Interface: port1(LAN) a porta LAN Destination Address: vamos colocamos nosso “Virtual IP” que criamos o “Port_80_WEB”, este diz que a porta 80 será direcionada para nosso servidor com IP 10.10.10.144 Schedule: ALL Service: “HTTP” Action: ACCEPT Log Allowed Traffic: vamos deixar habilitado para podermos ver o trafego
Clique em ok.
Pronto acabamos de publicar nosso servidor WEB de forma segura.
Vamos criar pontos de extremidades no Windows Azure, na realizadade vamos liberar no firewall do Windows Azure portas de acesso para nossa maquina virtual dentro do Windows Azure.
No Windows Azure cada maquina virtual recebe um IP Privado interno e um IP Público, porém o acesso é através de NAT passando pelo firewall do Windows Azure (Eu particularmente prefiro assim é mais seguro), vejo no desenho abaixo como funciona
ao acessar o endereço IP 23.97.99.183 ou o nome de DNS BRSPSRV001.cloudapp.net o firewall faz o NAT na porta 80 (ha que vamos liberar) para a maquina virtual.
Veja na imagem abaixo que nosso servidor WEB já está disponivél
Poré quando acessamos pelo IP 23.97.99.183 ou pelo nome DNS BRSPSRV001.cloudapp.net de fora do Windows Azure não conseguimos porque a liberação não foi feita
Agora vamos fazer a liberação da porta 80
No portal do Windows Azure acessa clique em sua maquina virtual
Depois clique em pontos de extremidade
Agora clique em adicionar
Vamos habilitar “Adicionar um ponto de extremidade autônomo”
Em Nome escolha “HTTP” Protocolo “TCP” Porta Pública “80” Porta Privada “80”
Neste exemplo usaremos essas configurações, mas podemos fazer por exemplo o seguinte NAT, porta pública “8080” e privada “80”.
Deixa as demais opções em branco
Clique ok
A regra está sendo criada
Pronto a regra foi criada, o NAT da porta 80 pública para porta 80 privada está ok.
Agora em nosso navegador podemos acessar nosso site normalmente
Por nome de DNS
Por IP Público
Isso vale para qualquer porta tanto para Windows Server como VM com Linux.
E no Firewall do Windows as portas devem estar liberadas também.
Você precisa fazer login para comentar.