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.

