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)
Seja Feliz!!!!