Ferramentas
Firewall Multivendor Configurator
Monte uma VPN IPsec site-to-site entre dois sites: arraste um firewall para cada site, informe os IPs públicos e as LANs e clique em Deploy para gerar a configuração de cada lado — os fabricantes podem ser diferentes em cada ponta. Use Deploy Terraform para gerar a mesma configuração como projeto Terraform.
Arraste um firewall até o site (ou toque no firewall e depois no site). Os nomes das interfaces WAN e LAN são opcionais: se ficarem vazios, é usado o padrão do fabricante.
Site A
ISP A
Firewall A
Solte o firewall aqui
Solte o firewall aqui
LAN A
Internet
IPsec IKEv2
Site B
ISP B
Firewall B
Solte o firewall aqui
Solte o firewall aqui
LAN B
Site A
Site B
Como aplicar a configuração com Terraform
-
Pré-requisitos. Terraform 1.5 ou mais recente instalado
(
terraform version) e acesso de gerência a cada firewall a partir da máquina onde o Terraform roda: API HTTPS no FortiGate e no Palo Alto, SSH/NETCONF no SRX. -
Credenciais de API, criadas uma vez em cada firewall:
Fabricante Credencial Variáveis FortiGate Token de um REST API Admin (System › Administrators › Create New › REST API Admin), com o IP da máquina do Terraform em Trusted Hosts. TF_VAR_fortigate_hostTF_VAR_fortigate_tokenPalo Alto API key gerada com curl -k "https://<firewall>/api/?type=keygen&user=<usuário>&password=<senha>"(valor da tag<key>).TF_VAR_panos_hostTF_VAR_panos_api_keyJuniper SRX Usuário com permissão de configuração e NETCONF habilitado: set system services netconf ssh+commit.TF_VAR_junos_hostTF_VAR_junos_usernameTF_VAR_junos_password -
Uma pasta por site. Clique em Copiar configuração do Site A e salve
o conteúdo como
main.tfnuma pasta própria; repita para o Site B em outra pasta.mkdir -p vpn/site-a vpn/site-b cd vpn/site-a # cole a configuração do Site A em main.tf -
Informe as credenciais por variáveis de ambiente (não ficam em arquivo).
Exemplo para um FortiGate — use os nomes da tabela acima para os outros fabricantes:
A PSK já vem como valor padrão de# Linux / macOS export TF_VAR_fortigate_host="192.0.2.10" export TF_VAR_fortigate_token="<token>" # Windows (PowerShell) $env:TF_VAR_fortigate_host = "192.0.2.10" $env:TF_VAR_fortigate_token = "<token>"vpn_psk; para tirá-la do arquivo, apague a linhadefaulte definaTF_VAR_vpn_pskcom o mesmo valor nos dois sites. -
Inicialize, valide e revise o plano. O
initbaixa o provider; oplanmostra tudo o que será criado sem alterar nada no firewall.terraform init terraform fmt terraform validate terraform plan -out=site-a.tfplan -
Aplique.
No FortiGate as mudanças valem na hora; no SRX o provider faz commit a cada alteração; no Palo Alto é preciso fazer commit depois do apply (botão Commit na interface web outerraform apply site-a.tfplanconfigure→commitna CLI). -
Repita os passos 3 a 6 na pasta do Site B e confira se o túnel subiu:
# FortiGate get vpn ipsec tunnel summary diagnose vpn ike gateway list # Palo Alto show vpn ike-sa show vpn ipsec-sa # Juniper SRX show security ike security-associations show security ipsec security-associations -
Cuidados. O arquivo
terraform.tfstateguarda a PSK e outros segredos em texto puro: não o publique nem o coloque no Git (use um backend remoto com criptografia em produção). Para desfazer tudo,terraform destroyremove os objetos criados — revise o plano antes de confirmar.