Dead Packets

30/03/2012

Criação de NATs estáticos no Fortinet

Filed under: fortinet — drak @ 9:03 PM

O artigo abaixo foi contribuído pelo meu amigo Ricardo “Dexter”.

Diferente da maioria dos firewalls no Fortinet ao criar um NAT IP_PUBLICO -> IP_REAL_INTERNO o mesmo não cria a associação inversa, ou seja, o fato de criar um NAT 200.200.200.200 -> 10.10.10.10 não significa que o quando o endereço 10.10.10.10 sair para a Internet ele fará a tradução para o IP 200.200.200.200; para que essa asociação ocorra deve ser criado um NAT na Central NAT, uma tabela de NATs parecida com a tabela do Checkpoint para NATs estáticos.

O script automatiza as linhas de configuração necessárias para a criação do NAT nos dois sentidos (VIP e Central NAT). Deve-se fornecer como argumento uma tabela de enderecos válidos seguido do endereço real no formato abaixo, colocar essas informações em um arquivo chamado lista.txt na mesma pasta do script.

200.200.200.200 10.10.10.10
200.200.200.201 10.10.10.11
200.200.200.202 10.10.10.12

É importante lembrar que caso existam outros NATs no equipamento deve-se altera o valor da variável $ivc visto que tabela de Central NAT associa os NATs a IDs, a variável $ivc (id valor contador) deve ser ser alterada de 1 para o ultimo id utilizado.

#!/usr/bin/perl

# Interface voltada para Internet Alterar essa variavel
$interfExt = "port16" ;

# Alterar o nome do arquivo com a relação "IP_NATEADO IP_REAL"
open(DATA, "<lista.txt");
$ivc = 1 ;
while(<DATA>)
{
my($line) = $_;
chomp($line);
($ipext, $ipint) = split (/ /, $line);
printf "config firewall vip                   \n";
printf "    edit \"VIP_$ipext\"               \n";
printf "        set extip \"$ipext\"          \n";
printf "        set extintf \"$interfExt\"    \n";
printf "        set mappedip $ipint           \n";
printf "    next                              \n";
printf "end                                   \n";
printf "                                      \n";
printf "config firewall address               \n";
printf "    edit \"$ipint\"                   \n";
printf "     set subnet $ipint 255.255.255.255\n";
printf "    next                              \n";
printf "end                                   \n";
printf "                                      \n";
printf "config firewall ippool                \n";
printf "    edit \"$ipext\"                   \n";
printf "        set endip $ipext              \n";
printf "        set startip $ipext            \n";
printf "    next                              \n";
printf "end                                   \n";
printf "                                      \n";
printf "                                      \n";
printf "config firewall central-nat           \n";
printf "    edit $ivc                         \n";
printf "        set orig-addr \"$ipint\"      \n";
printf "        set nat-ippool \"$ipext\"     \n";
printf "        set orig-port 1               \n";
printf "        set nat-port 1-65535          \n";
printf "    next                              \n";
printf "end                                \n \n";
$ivc++;
}

Anúncios

Deixe um comentário »

Nenhum comentário ainda.

RSS feed for comments on this post. TrackBack URI

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Crie um website ou blog gratuito no WordPress.com.

%d blogueiros gostam disto: