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.