Introdução
Nesse tutorial estarei abordando de forma prática a interligação de três redes distintas com utilizando o
VTUN.
Cenário:
Redes separadas geograficamente:
192.168.1.0/24
192.168.2.0/24
192.168.4.0/24
Obs.: É necessário que as redes utilizem configurações de ips distintas, caso o contrário teremos posteriormente conflitos no roteamento e a comunicação não acontecerá.
Para esse tutorial:
Foram utilizados três servidores rodando uma versão do
Ubuntu Server 11.04, com duas placas de redes uma para rede local e outra para a internet. No entanto esse tutorial pode ser adaptado para qualquer versão de
Debian ou derivados.
Explicando
A topologia da
VPN foi criada em estrela, dessa forma se qualquer um dos servidores ficarem fora do ar por algum motivo os outros continuarão comunicando-se entre si normalmente.
Redes a serem interligadas:
Rede Matriz -> 192.168.1.0/24
Rede Filial1 -> 192.168.4.0/24
Rede Filial2 -> 192.168.2.0/24
Túneis a serem criados:
Túnel 1 -> Liga a Matriz a Filial 1 (10.0.0.1 <> 10.0.0.3);
Túnel 2 -> Liga a Filial 1 a Filial 2 (10.0.0.4 <> 10.0.0.5);
Túnel 3 -> Liga a Filial 2 a Matriz (10.0.0.6 <> 10.0.0.2).
Configuração da Matriz
Para instalar o vtun:
# apt-get install vtun
Teremos três arquivos de configuração distintos. A Matriz apenas irá rodar o vtun em modo servidor, ou seja irá aceitar as conexões da Filial1 e Filial2.
Vejamos o arquivo de configuração da Matriz:
#Configuracao Matriz
#Configuracao Matriz (10.0.0.1 / 10.0.0.2)
default {
type tun;
proto tcp;
compress lzo:9;
keepalive yes;
encrypt yes;
}
#Tunel entre Filial1 e Matriz (10.0.0.3 <---> 10.0.0.1)
Filial1Matriz {
passwd tux;
up{
ifconfig "%% 10.0.0.1 pointopoint 10.0.0.3";
route "add -net 192.168.4.0/24 gw 10.0.0.3";
};
down{
ifconfig "%% down";
route "del -net 192.168.4.0/24 gw 10.0.0.3";
};
}
#Tunel entre Filial2 e Matriz (10.0.0.6 <---> 10.0.0.2)
Filial2Matriz {
passwd tux;
up{
ifconfig "%% 10.0.0.2 pointopoint 10.0.0.6";
route "add -net 192.168.2.0/24 gw 10.0.0.6";
};
down{
ifconfig "%% down";
route "del -net 192.168.2.0/24 gw 10.0.0.6";
};
}
Nesse arquivo você pode ver a configuração do servidor que irá esperar por duas conexões da Filial1 e da Filial2.
As linhas "passwd tux;" podem e devem ser alteradas utilizando-se senhas diferentes entre os túneis do servidor com a Filial1 e Filial2.
As linhas route "del -net 192.168.4.0/24 gw 10.0.0.3"; para a Filial1 e route "add -net 192.168.2.0/24 gw 10.0.0.6"; para a Filial2 devem ser alteradas de acordo com a configuração de ip da sua rede.
Com o arquivo pronto você irá precisar executar apenas mais dois passos, liberar a porta 5000 utilizada como padrão (essa porta pode ser alterada) pelo vtun no firewall e executar o servidor vtun propriamente dito.
Exemplo:
# iptables -I INPUT -p tcp --dport 5000 -j ACCEPT
Ou ainda:
# iptables -I INPUT -p tcp -s IPDAFILIAL1 --dport 5000 -j ACCEPT
# iptables -I INPUT -p tcp -s IPDAFILIAL2 --dport 5000 -j ACCEPT
Nesse caso apenas se o ips da internet da FILIAL1 e FILIAL2 forem fixos, isso trará mais segurança uma vez que você está liberando conexões na porta 5000 apenas para os ips da Filial1 e Filial2 impedindo tentativas de conexões oriundas de outros locais.
Para executar o servidor vtun:
# vtund -s