Configurando o arquivo server.conf
Agora temos que criar o principal arquivo de configuração do OpenVPN.
Então execute:
# nano /etc/openvpn/server.conf
Dentro deste arquivo, coloque as seguintes informações:
##Protocolo de Conexão
proto udp #TIPO DE PROTOCOLO
# Porta do servico
port 1194 # PORTA USADA
# Drive da interface
dev tun # DRIVER DA INTERFACE DE REDE "TUN" INTERFACE VIRTUAL
# Atribui endereços dinâmicos a vários clientes, ips para o túnel VPN
server 10.0.0.0 255.255.255.0 # FAIXA DE IPS QUE SERÁ DISTRIBUIDOS PARA OS CLIENTES VPN
# Acrescenta rotas aos clientes, informações da rede local
push "route 192.168.0.0 255.255.255.0" # TROQUE ESSAS INFORMAÇÕES POR SUA REDE
push "dhcp-option DNS 192.168.0.251" # TROQUE ESSAS INFORMAÇÕES POR SUA REDE
push "dhcp-option WINS 192.168.0.251" # TROQUE ESSAS INFORMAÇÕES POR SUA REDE
# Configurações adicionais no cliente
push "ping 10"
push "ping-restart 60"
# Rotas do servidor
route 10.0.0.0 255.255.255.0 # ROTA DO CLIENTE VPN
# Compactacao lib LZO
comp-lzo #COMPACTADOR DAS INFORMAÇÕES ATRAVES DO TÚNEL, FALAREI MAIS SOBRE ESSA EM BAIXO
keepalive 10 120 # O PRIMEIRO NUMERO É O INTERVALO DE PINGS E O SEGUNDO O TIMEOUT DEPOIS QUE A VPN É REINICIADA
float # ESSA OPCAO É PARA IPS DINAMICOS, MESMO QUE O IP MUDE A VPN CONTINUA COM O TUNEL ABERTO
ifconfig-pool-persist /etc/openvpn/ipp.txt #ARMAZENA A LISTA DE IPS USADA PELOS CLIENTES, SEMPRE QUE O CLIENTE VOLTA A LOGAR ELE RECEBE O MESMO IP
max-clients 10 # LIMITE MAXIMO DE CLIENTE LOGADOS AO MESMO TEMPO
persist-key #FAZ COM QUE O DAEMON MANTENHA A INTERFACE TUN ABERTA, QUANDO A VPN É REINICIADA
persist-tun # FAZ COM QUE O DAEMON MANTENHA A INTERFACE TUN ABERTA, QUANDO A VPN É REINICIADAr
log-append /var/log/openvpn.log # LOG DA VPN
verb 6
# Servidor TLS
tls-server
# Chaves necessárias
dh /etc/openvpn/keys/dh1024.pem #CHAVES QUE FORAM CRIADAS
ca /etc/openvpn/keys/ca.crt #CHAVES QUE FORAM CRIADAS
cert /etc/openvpn/keys/SOL.crt #CHAVES QUE FORAM CRIADAS
key /etc/openvpn/keys/SOL.key #CHAVES QUE FORAM CRIADAS
# Chave secreta do servidor
tls-auth /etc/openvpn/keys/chave.key #CHAVES QUE FORAM CRIADAS
status /var/log/openvpn.stats #LOG DE STATUS DA VPN
Depois salve e saia, e reinicie o servidor VPN:
# /etc/init.d/openvpn restart
Se tiver algum firewall na sua rede, segue uma dica de regra para funcionar.
Esta dica peguei deste ótimo artigo, aqui no VOL mesmo:
# iptables -t filter -A INPUT -p udp --dport 1194 -j ACCEPT
# iptables -t filter -A FORWARD -p udp -s 192.168.0.0/24 --dport 1194 -j ACCEPT
# iptables -t filter -A FORWARD -p udp -d 192.168.0.0/24 --sport 1194 -j ACCEPT
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 10.0.0.0/24 -j ACCEPT
# iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -s 10.0.0.0/24 -j ACCEPT
# iptables -t nat -I POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE
Esta opção que está no arquivo
server.conf, "comp-lzo", serve para a VPN passar a compactar os dados transmitidos através do túnel, só que para isso funcionar, temos que instalar o pacote
lzop.
Então execute:
# apt-get install lzop
Ou:
# aptitude install lzop
Configurando o cliente Windows
Tanto para clientes XP como Windows 7, o artigo funciona.
Primeiro, temos que fazer o download do software em:
Feito o download, vamos fazer a instalação dele no cliente, instalação padrão:
Instalação normal > next > I Agree > next > Install > next > finish
Dentro do diretório
C:\Program Files\OpenVPN\config, criamos a pasta "keys".
Dentro da pasta "Keys", temos que copiar as chaves de acesso para o cliente que fica no servidor no diretório
/etc/openvpn/easy-rsa/keys
Os arquivos são:
- dh1024.pem
- ca.crt
- usuariodavpn.crt
- usuariodavpn.key
- chave.key
Agora, no diretório
C:\Program Files\OpenVPN\config, temos que criar um arquivos no bloco de notas mesmo, chamado "client".
Dentro desse arquivo, tem que ter as seguintes linhas:
client
dev tun #DRIVER DA INTERFACE VIRTUAL
proto udp #PROTOCOLO DA INTERFACE
remote 200.200.200.2000 #IP FIXO DA SUA REDE, ONDE CHEGA A INTERNET
port 1194 # PORTA DE ACESSO
pull #DO INGLÊS PUXAR, SERVE PARA QUE O CLIENTE ACEITE AS CONFIGURAÇÕES DO SERVIDOR
comp-lzo #COMPACTADOR DE DADOS NO TUNEL VPN
keepalive 10 120 #O PRIMEIRO NUMERO É O INTERVALO DE PINGS E O SEGUNDO O TIMEOUT
float # ESSA OPCAO É PARA IPS DINAMICOS, MESMO QUE O IP MUDE A VPN CONTINUA COM O TUNEL ABERTO
tls-client
persist-tun # FAZ COM QUE O DAEMON MANTENHA A INTERFACE TUN ABERTA, QUANDO A VPN É REINICIADA
persist-key #FAZ COM QUE O DAEMON MANTENHA A INTERFACE TUN ABERTA, QUANDO A VPN É REINICIADA
remote-cert-tls server
dh keys/dh1024.pem #CHAVE FEITA LA NO SERVIDOR
ca keys/ca.crt #CHAVE FEITA LA NO SERVIDOR
cert keys/seuusuario.crt #TROQUE PELO NOME DO CERTIFICADO CRIADO POR VOCÊ
key keys/seuusuario.key #TROQUE PELO NOME DO CERTIFICADO CRIADO POR VOCÊ
tls-auth keys/chave.key #CHAVE FEITA LA NO SERVIDOR
route-method exe
route-delay 2
Salve e feche o arquivo.
* Agora vem o MAIS IMPORTANTE: Você deve salvar este arquivo com a seguinte extensão: .ovpn
Então, o arquivo ficaria nomeado assim depois de salvo:
cliente.ovpn
Se não for feito isso, a VPN não funciona.
Agora, para testar suas chaves, faça o seguinte procedimento:
- Na sua área de trabalho terá um ícone chamado OpenVPN GUI, execute ele.
- Do lado do seu relógio aparecerá o mesmo ícone, só que em vermelho, clique com o botão direito e vá em "Conectar", se você fez tudo certo, os computadores ficaram verdes, com o status "Connected".
Pronto, sua VPN está funcionando.
* Dica: Evite usar nomes de acesso na sua VPN, pois isso demora muito, por causa da resposta do servidor DNS. Tente sempre usar o numero IP.
Ex.: se você for acessar um servidor que está na sua rede e ele ter o nome de "servidor", ao invés de você acessar ele como "servidor", acesse pelo seu IP. ;)
Referências
Agradeço a todos meus amigos que sempre ajudaram em minha carreira!
Em especial:
Thiago Sousa Messias Gonçalves
William Sousa Messias Gonçalves