Instalando Túneis Com Vtun

De Wiki Tarrafa.org - Documentação Colaborativa e Livre

Vtun Pantaneiro

Quando pensamos em interligar Matriz e Filiais através da internet sempre esbarramos no problema "segurança". Fiz um artigo sobre conexões tcp seguras através do VTUN, desta forma podemos utilizar a infra-estrutura da internet para conectar de forma segura matriz e filiais, para isto criaremos redes virtuais.

Outra utilização interessante para estes túneis se dá quando precisamos fazer manutenções em servidores ou estações que não tem um IP Público, e seus modens ou roteadores não fazendo port forwarding (redirecionamento). Instalando e configurando o vtund no cliente ele poderá conectar no servidor criando uma rede virtual que vai possibilitar a administração remota.

O artigo abaixo serve para ambos cenários.

GULMS - Grupo de Usuários Linux do MS. Visite: http://www.gulms.org Campo Grande, Mato Grosso do Sul, Brasil.


Tabela de conteúdo

autor

guto carvalho, guto@gutocarvalho.net


teoria

Exemplo feito entre matriz e filial.

Distro Matriz: Ubuntu 6.06.1 LTS Distro Filial: Ubuntu 6.10

Ip público servidor matriz 200.xxx.xxx.xxx

Rede privada Matriz 192.168.0.0/24

Rede privada Filial 192.168.1.0/24

Rede virtual Matriz/Filial 172.16.0.0/16


configurando servidor

root@matriz:/# apt-get install vtund
root@matriz:/# vi /etc/vtund.conf
filial {
    pass suasenha;
    type tun; # IP tunnel
    proto tcp; # UDP protocol
    compress lzo:9; # LZO compression level 9
    encrypt yes; # Encryption
    keepalive yes; # Keep connection alive
    persist yes;

up {
    ifconfig "%% 172.16.0.1 pointopoint 172.16.0.2 netmask 255.255.0.0 broadcast 172.16.255.255";
    route "add -net 192.168.1.0/24 gw 172.16.0.2 dev %%";
   };
down {
    ifconfig "%% down";
    route "add -del 192.168.1.0/24 gw 172.16.0.2 dev %%";
    };
}


Feito isto basta rodar daemon do vtun.

root@matriz:/etc# vtund -s


configurando a filial

root@filial:/# apt-get install vtund
root@filial:/# vi /etc/vtund.conf
filial {
    pass suasenha;
    type tun; # IP tunnel
    proto tcp; # UDP protocol
    compress lzo:9; # LZO compression level 9
    encrypt yes; # Encryption
    keepalive yes; # Keep connection alive
    persist yes;

up {
    ifconfig "%% 172.16.0.2 pointopoint 172.16.0.1 netmask 255.255.0.0 broadcast 172.16.255.255";
    route "add -net 192.168.0.0/24 gw 172.16.0.1 dev %%";
   };
down {
    ifconfig "%% down";
    route "add -del 192.168.0.0/24 gw 172.16.0.1 dev %%";
     };
}

Criando o túnel entre filial e matriz.

root@filial:/# vtun filial 200.xxx.xxx.xxx


testando o túnel

Verificando interfaces

No servidor vai aparecer a interface tun0

root@matriz:/# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:172.16.0.1 P-t-P:172.16.0.2 Mask:255.255.0.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:25 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
root@matriz:/# ip route show
192.168.1.0/24 via 172.16.0.2 dev tun0
root@matriz:/# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.06 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.09 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=1.10 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=1.09 ms

No cliente vai aparecer a interface tun0

root@filial:/# ifconfig tun0
tun0 Encapsulamento do Link: Não Especificado Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet end.: 172.16.0.2 P-a-P:172.16.0.1 Masc:255.255.0.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Métrica:1
pacotes RX:15 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:25 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:500
root@filial:/# ip route show
192.168.0.0/24 via 172.16.0.1 dev tun0
root@filial:/# ping 192.168.0.1
PING 192.168.0.1 (172.16.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.06 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.09 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=1.10 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=1.09 ms 

dicas

Com o túnel funcionando você poderá acessar da matriz o sevidor da filial.

root@matriz:/# ssh -l usuario 192.168.1.1

A rede da filial poderá utilizar os serviços e sistemas da matriz e vice-versa.

Detalhes, no servidor a porta 5000 TCP deve estar liberada para receber conexões.

Se sua firewall for restritiva libere na tabela input filter as redes do túnel, assim você poderá utilizar os serviços.

Para desligar o túnel.

root@matriz:/# ifconfig tun0 down
root@filial:/# ifconfig tun0 down

As rotas serão desfeitas automaticamente.

referências