Já a algum tempo eu escrevi um post falando dos benefícios de usar uma VPN como um nível extra de proteção para serviços de rede. Vou ensinar uma forma rápida de criar uma VPN ponto-a-rede.
A VPN ponto-a-rede, é aquela que utilizamos para conectar um único computador (ponto) a uma rede. Uma situação comum para isso, é quando a empresa possui uma rede interna protegida por um firewall e que acessar essa rede a partir de um notebook.
Assumimos a seguinte estrutura de TI, uma rede corporativa com IPs no padrão 192.168.0.X, com um firewall linux IP interno 192.168.0.1 e externo 208.67.222.222
Em nosso servidor linux devemos instalar o OpenVPN:
# aptitude install openvpn
Depois de instalado copiamos os script de exemplo criados pela instalação em /etc/openvpn
#cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn
Começamos a instalação. Dentro do diretório /etc/openvpn
# . ./vars # ./clean-all # ./build-ca
Observe que é . [espaço] ./vars, a primeira vez que eu vi isso achei que fosse um erro de digitação, mas é assim mesmo.
Quando executamos o script build-ca ele deve fazer uma seqüencia de perguntas onde a mais importante é common name que deve ser respondida como server para funcionar corretamente na aplicação. As demais você pode preencher ou aceitar as opções padrão.
Agora vamos criar os arquivos do servidor.
Espero ter ajudado.
Quando executamos o script build-ca ele deve fazer uma seqüencia de perguntas onde a mais importante é common name que deve ser respondida como server para funcionar corretamente na aplicação. As demais você pode preencher ou aceitar as opções padrão.
Agora vamos criar os arquivos do servidor.
# ./build-key-server server
Depois de respondermos cada pergunta, ele deve mostrar um resumo de nossas respostas e perguntar se queremos realmente assinar o certificado. Devemos responder que sim digitando y.
E por último o script pergunta se temos certeza que queremos incluir este servidor em nosso banco de dados. Devemos responder novamente que sim com y.
Criamos agora os arquivos de cada usuário, com sua respectiva senha.
E por último o script pergunta se temos certeza que queremos incluir este servidor em nosso banco de dados. Devemos responder novamente que sim com y.
Criamos agora os arquivos de cada usuário, com sua respectiva senha.
# ./build-key-pass usuario # ./build-key-pass lucas
Onde usuario e lucas são os dois usuários criados.
A primeira pergunta deste script é o PEM passphrase que será a senha deste usuário.
No mais podemos deixar as opções padrão, o commom name de cada usuário será seu próprio nome e devemos responder as duas últimas perguntas com y como na etapa anterior.
Depois geramos os parâmetros diffie-hellman (isso pode demorar um pouco)
A primeira pergunta deste script é o PEM passphrase que será a senha deste usuário.
No mais podemos deixar as opções padrão, o commom name de cada usuário será seu próprio nome e devemos responder as duas últimas perguntas com y como na etapa anterior.
Depois geramos os parâmetros diffie-hellman (isso pode demorar um pouco)
# ./build-dh
O arquivo de configuração do servidor deve ficar assim
# IP e porta do servidor local 208.67.222.222 port 1194 proto udp dev tun # Certificados gerados ca ca.crt cert server.crt key server.key dh dh1024.pem # Criar no diretorio cdd/cliente a configuracao # dele - ou uma invalida para trava-lo :) client-config-dir ccd # Rede que os clientes irão "pegar" server 10.8.0.0 255.255.255.0 push "route 192.168.0.0 255.255.252.0" push "dhcp-option DNS 192.168.0.1" # Neste arquivo serão guardados os IPs dos clientes # para conectarem com o mesmo IP da proxima vez ifconfig-pool-persist ipp.txt client-to-client # Ative para permitir dois clientes com o mesmo # certificado - não recomendável ;duplicate-cn keepalive 10 120 # Compressão, privilégios do cliente comp-lzo max-clients 15 user nobody group nobody # Logs e etc persist-key persist-tun status /var/log/openvpn-status.log log /var/log/openvpn.log log-append /var/log/openvpn.log verb 6
Este arquivo deve ser salvo como /etc/openvpn/openvpn.conf
Para finalizarmos devemos copiar os arquivos ca.crt, dh1024.pem, server.crt e server.key de /etc/openvpn/keys para /etc/openvpn.
Para finalizarmos devemos copiar os arquivos ca.crt, dh1024.pem, server.crt e server.key de /etc/openvpn/keys para /etc/openvpn.
Pronto, o servidor está pronto e pode ser iniciado com
# /etc/init.d/openvpn/start
Agora vamos ao cliente Windows. Primeiramente baixe o pacote contido no link.
http://www.megaupload.com/?d=8669PV98
http://www.megaupload.com/?d=8669PV98
Faça a instalação completa.
Na pasta c:\arquivos de programas\openvpn\config copie os seguintes arquivos:
- ca.crt
- usuario.key
- usuario.crt
- server.ovpn
O arquivo server.ovpn deve estar configurado desta forma para o cenário proposto.
client dev tun proto udp remote 208.67.222.222 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert usuario.crt key usuario.key ns-cert-type server comp-lzo verb 3
Espero ter ajudado.