VTUN Pantaneiro

De gutocarvalho.net

VTUN à moda Pantaneira

Ferramentas: VTUND

Autor: guto carvalho (guto@gutocarvalho.net)

Campo Grande, Mato Grosso do Sul, Brasil.

Ambiente: Ubuntu Feisty 7.04 Server


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.


Conteúdo

[editar] teoria

Exemplo feito entre matriz e filial.

Distro Matriz: Ubuntu 7.04 server Distro Filial: Ubuntu 7.04 server

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 (VPN) 172.16.0.0/16

IP Matriz (VPN) 172.16.0.1

IP Filial (VPN) 172.16.0.2


[editar] configurando servidor

instalando o vtund server

root@matriz:/# apt-get install vtun

agora voce editar o arquivo e configurar um sessão para a filial.

root@matriz:/# vi /etc/vtund.conf
options {
  port 5000;            # Listen on this port. 

  # Syslog facility
  syslog        daemon;

  # Path to various programs
  ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
  firewall      /sbin/ipchains;
  ip            /sbin/ip;
}

# Default session options 
default {
  compress no;          # Compression is off by default
  speed 0;              # By default maximum speed, NO shaping
}

filial {
  passwd  suasenha;       # Password
  type  tun;            # IP tunnel 
  proto udp;            # UDP protocol
  compress  lzo:9;      # LZO compression level 9
  encrypt  yes;         # Encryption
  keepalive yes;        # Keep connection alive

  up {
        # Connection is Up 
        # 172.16.0.1 - local, 172.16.0.2 - remote 
        ifconfig "%% 172.16.0.1 pointopoint 172.16.0.2 netmask 255.255.0.0 broadcast 172.16.255.255";
     };
 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

[editar] configurando a filial

Vamos instalar o daemon do vtund no servidor da filial

root@filial:/# apt-get install vtund

Agora vamos configurar o vtund, note que o nome da sessão é o mesmo criado na matriz, só vamos alterar o endereço ip.

root@filial:/# vi /etc/vtund.conf
filial {
  passwd  suasenha;    # Password
  device tun1;          # Device tun1
  persist yes;         # Persist mode 
  up {
        # Connection is Up 
        # Assign IP addresses. 
        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:/# vtund filial 200.xxx.xxx.xxx

[editar] 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 

[editar] 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.

[editar] referências

Ferramentas pessoais