O
OpenVPN é uma solução VPN baseada em Security Sockets Layer (SSL). Ele está disponível
para as plataformas: Linux, Windows 2000/XP ou superior, OpenBSD, FreeBSD,
NetBSD, Mac OS X e Solaris.
É
uma solução robusta e muito simples de se instalar em qualquer arquitetura de
rede, pois não envolve diretamente o sistema operacional.
Possui
suporte para autenticação com chaves públicas, chaves estáticas e permite
a criação de túneis sem autenticação.
Para
garantir a criptografia da comunicação o OpenVPN faz uso do OpenSSL,
pode ser configurado para utilizar tráfego TCP ou UDP – em uma definição bem
simples do seu funcionamento o OpenVPN simplesmente criptografa o pacote e o
envia dentro de um novo pacote UDP/TCP.
Ele
necessita que o sistema operacional tenha suporte ao driver TUN/TAP para que possa
funcionar corretamente.
No
Linux, nas versões de kernel anteriores a 2.2, será necessário realizar a
instalação deste driver e recompilar o kernel. Para usuários do kernel 2.4.7 ou
superior o suporte a esse driver já está incluído.
Para
aplicações mais robustas com tráfego intenso é possível implementar o
“loadbalance” onde diversos servidores serão os responsáveis pelo acesso a rede
interna, com um sistema inteligente o OpenVPN pode gerenciar qual servidor será
utilizado para criar o túnel ou os servidores vão sendo utilizados por ordem,
ou seja, esgotou o número de conexões permitidas para aquele servidor o túnel
será criado em outro.
Ainda
permite a utilização da biblioteca LZO para compactação dos dados a serem transmitidos.
O OpenVPN pode trabalhar com dois tipos de túneis:
- Túneis IP roteáveis: Utilizado para rotear o tráfego
ponto-a-ponto sem broadcast. São túneis muito fáceis de configurar e
apresentam um desempenho muito satisfatório.
- Túneis Ethernet Bridge: Utilizado para situações onde há necessidade
de broadcast sobre o túnel. São túneis um pouco mais complexos de se
configurar e precisam da criação de um dispositivo virtual para realizar a
ponte. O pacote do OpenVPN possui scripts
pré-configurados para auxiliar na criação desse dispositivo.
O OpenVPN te possibilita autenticar entre os pontos de várias maneiras.
O OpenVPN oferece chaves secretas compartilhadas, autenticação baseada em certificados e autenticação baseada em usuário e senha.
O método de autenticação com chaves secretas compartilhadas é o mais simples, e combinando com certificados ele se torna o mais robusto e rico recurso de autenticação.
A autenticação com usuário e senha é um recurso novo (disponível apenas na versão 2.0) que possibilita o uso de certificados no cliente, mas não é obrigatório (o servidor precisa de certificado).
O código fonte em formato tarball inclui um exemplo de script Perl que verifica usuário e senha através do PAM e um plug-in em C chamado auth-pam-plugin.
gab:certo