O objetivo deste trabalho é mostrar na prática a comunicação entre dois hosts, através de uma conexão VPN. O host servidor da VPN está em uma rede classe C e host cliente da VPN está em rede classe B.
Vamos utilizar uma bridge para que os dois hosts possam se comunicar como se estivessem na mesma rede, utilizando OpenVPN com chaves criptográficas para maior segurança na comunicação no túnel VPN.
Abaixo figura do diagrama de rede.
Instalando OpenVPN no Ubuntu Server 10.04
Para este artigo vamos utilizar distribuição Ubuntu Server 10.04, comandos servem para qualquer distribuição baseada no Debian.
Primeiramente temos que instalar o OpenVPN:
sudo apt-get install openvpn
Depois de instalar o servidor OpenVPN, ele cria um diretório onde tem um conjunto de scripts para facilitar administração do servidor OpenVPN, e também a manutenção das chaves de segurança e certificados, no caso do Ubuntu Server este diretório esta localizado em /usr/share/doc/openvpn/examples/easy-rsa/2.0.
Vá até esse diretório através de um comando "cd" e depois liste seu conteúdo com ls.
Neste diretório estão scripts para facilitar a vida do administrador para gerar certificados válidos para conexão VPN.
Agora no diretório /etc/ crie a pasta openvpn, crie também uma pasta para receber scripts do easy-rsa:
sudo mkdir /etc/openvpn (importante usar o sudo ou root, usuário comum não tem permissão para gravar neste diretório)
Crie a pasta chamada easy-rsa ou outro nome de sua preferência:
sudo mkdir easy-rsa
Agora é só copiar conteúdo para o novo diretório com "cp -a" para conservar os atributos dos arquivos:
sudo cp -a /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/esasy-rsa
Feita a cópia dos arquivos para novo diretório /etc/openvpn/easy-rsa, utilize os scripts para configurar o servidor.
Não esqueça de utilizar o root daqui pra frente. No Ubuntu o root é desabilitado, então dê o seguinte comando no seu terminal e você pode usar root sem ter que habilitar sua conta:
sudo su
Primeiramente entre no diretório /etc/openvpn/easy-rsa e edite o arquivo "vars" com seu editor favorito, procure as linhas abaixo.
Altere as configurações de acordo com seu servidor, com informações de País, Estado, Cidade, Empresa e Email de contato, como exemplo abaixo:
Agora execute o comando:
sudo source vars
Esse comando vai carregar as variáveis contidas dentro do arquivo vars.
Note que ele emite um aviso que você tem que rodar o comando ./clean-all, esse comando serve para limpar configurações anteriores caso exista.
# ./clean-all
Feita a limpeza, é hora de construir certificado raiz do servidor através do script:
# ./build-ca
Este comando cria um certificado raiz com openssl, ao executá-lo irá pedir para digitar a abreviação do País, Estado, Cidade, Empresa e Email, como fizemos no arquivo "vars". Se você editou o vars é só teclar enter em todos, menos na opção name, nela você coloca o hostname do servidor.
Agora dando um ls dentro da pasta você verá que ele criou a pasta "Keys", onde serão armazenadas as chaves do servidor, dando ls na pasta keys, serão exibidos os arquivos o "ca.crt" e "ca.key", estes são os certificados raízes do servidor e sua chave, de extrema importância, pois estes arquivos são responsáveis por gerar as chaves de acesso, e qualquer um que tenha estes arquivos pode gerar chaves válidas para entrar em sua VPN.
Agora o servidor está configurado e pronto para criar os certificados.