terça-feira, agosto 22, 2006

VPN com FreeBSD e VTUN

Há tempos eu venho instalando alguns servidores com VPN, porém entre FreeBSD's é outro nível hehe, bem mais fácil do que com MPD e esses PPTP like hehe.
Bem o VTUN (Virtual Tunnel), provê um tunelamento sobre rede TCP/IP, com compressão e encriptação, extremamente útil quando se precisa trafegar dados pela Internet de um modo seguro quando se está atrás de um NAT (onde não funcionaria a VPN por UDP).
Lembrando que tenho nas "pontas" desta VPN dois servidores com FreeBSD's.


Parte da "mão na massa":

Em ambos os servidores:

# cd /usr/ports/net/vtun && make install clean
...(instalando vá tomar um café)
# rehash

Configurações:

No Servidor:

No servidor temos que liberar quais as redes que serão liberadas, as opções de conexão e as rotas para ir e vir nestas redes.

# vi /usr/local/etc/vtund.conf

Segue abaixo o arquivo:
# vtund.conf - servidor

options {
port 5000; # Espera conexões nesta porta
ifconfig /sbin/ifconfig;
route /sbin/route;
}

default {
type tun;
proto tcp;
compress lzo:9;
encrypt yes; # Encriptação SIM!!!
keepalive yes;
stat no;
speed 0;
multi killold;
}

filial1 {
passwd senha01;

up {

# IP matriz: 10.1.1.1
# IP filial: 10.1.1.2

# configura interface ponto-a-ponto
ifconfig "%% 10.1.1.1 10.1.1.2 mtu 1450 netmask 255.255.255.252";

# adiciona rota para a rede da filial
route "add -net 192.168.2.0 10.1.1.2 255.255.255.0";
};

# se houver desconexão derruba rota e a interface tunX
down {
ifconfig "%% delete down";
route "delete 192.168.2.0";
};

}
:wq

# echo "vtund_enable="YES" >> /etc/rc.conf
# /usr/local/etc/rc.d/vtund.sh start


No Cliente:

No cliente vamos especificar onde o cliente vai se conectar (porta) e como levantará a rota após se autenticar.

# vi /usr/local/etc/vtund.conf

# vtund.conf - cliente

options {
port 5000;
timeout 20;
syslog daemon;

ifconfig /sbin/ifconfig;
route /sbin/route;
}

filial1 {
pass senha01;
persist yes;

up {
ifconfig "%% 10.1.1.2 10.1.1.1 mtu 1450 netmask 255.255.255.252";

route "add -net 192.168.1.0 10.1.1.1 255.255.255.0";
};

down {
ifconfig "%% delete down";
route "delete 192.168.1.0";
};
}
:wq

# echo "vtunclient_enable="YES" >> /etc/rc.conf
# echo "vtunclient_flags="filial1 200.x.x.x" >> /etc/rc.conf
# /usr/local/etc/rc.d/vtunclient.sh start

Onde 200.x.x.x é o enderço do servidor da VPN

Vejamos as saídas dos ifconfig's depois de "startarmos" os serviços.

No servidor:

# ifconfig
tun0: flags=8051 mtu 1450
inet 10.1.1.1 --> 10.1.1.2 netmask 0xfffffffc
Opened by PID 83209

No Cliente:

# ifconfig
tun0: flags=8051 mtu 1450
inet 10.1.1.2 --> 10.1.1.1 netmask 0xfffffffc
Opened by PID 91620

Pronto, temos duas redes interligadas por dois servidores FreeBSD por meio de uma VPN utilizando o VTUN.

Agora podemos trafegar nossos dados das redes clientes desses dois servidores, sem ter que instalar "discadores" de VPN's em todas as estações rWindows.

1 Comments:

At 2:07 AM, Anonymous Anônimo said...

Muito boa essa dica!

 

Postar um comentário

<< Home