OpenVPN se comportando como PPTP
Veja neste artigo como criar uma VPN fácil e segura usando o OpenVPN e o OpenVPN GUI.
Parte 3: Configuração do servidor
Como você deve se lembrar do início do artigo, o OpenVPN foi feito para ser simples: coisas muito complicadas tendem a ser configuradas de maneira errônea, o que acaba causando falhas na segurança do sistema.
Sendo assim, não é errado imaginar que a configuração do sistema seja simples. Com algumas opções você já consegue deixar o servidor inteiro funcionando perfeitamente. No meu ambiente preferi fazer com que o OpenVPN funcionasse por uma bridge por alguns motivos:
Primeiro, vou explicar como configurar o OpenVPN e depois explicarei como fazer a bridge no Linux.
Crie o diretório /etc/openvpn:
# mkdir /etc/openvpn
Para dentro deste diretório você deve copiar o diretório easy-rsa, que está dentro do diretório criado quando você descompactou o OpenVPN na sua máquina.
# cp -R openvpn-2.0.9/easy-rsa /etc/openvpn
O easy-rsa é um conjunto de scripts que facilitam o processo de criação de certificados digitais. Estes serão utilizados para autenticar os usuários e permitir que eles estabeleçam a conexão com o nosso servidor.
Depois, crie um diretório que irá guardar os arquivos de configuração da VPN que iremos criar. Você pode dar qualquer nome a este diretório. Aqui, vou chamá-lo de vol-vpn:
# mkdir /etc/openvpn/vol-vpn
Dentro dele, crie um arquivo texto com qualquer nome. Ele irá conter todos os parâmetros da configuração da VPN que estamos fazendo. Ele vai ficar mais ou menos assim:
# cat /etc/openvpn/vol-vpn.conf
Bem simples, não? Obviamente este é um arquivo básico que tem como objetivo apenas fechar uma VPN que "faz o serviço", nada de avançado. Se você quiser uma explicação detalhada sobre estas e mais outras opções que podem te ajudar bastante, leia o FAQ do OpenVPN.
Sendo assim, não é errado imaginar que a configuração do sistema seja simples. Com algumas opções você já consegue deixar o servidor inteiro funcionando perfeitamente. No meu ambiente preferi fazer com que o OpenVPN funcionasse por uma bridge por alguns motivos:
- Algumas aplicações que são muito utilizadas pelos vendedores e diretores da minha empresa (como o ERP e o CRM) utilizam broadcasts de rede (que são barrados por roteadores);
- Precisava permitir acesso a compartilhamentos de arquivos do Windows. Isto não funciona quando se faz uma rede roteada.
- Também escolhi utilizar autenticação através de certificados para evitar senhas passando por redes inseguras e também para evitar problemas com usuários esquecendo as senhas. Com os certificados, nenhuma senha é necessária e para evitar que um determinado certificado se conecte ao servidor, basta revogá-lo. Veremos todos os detalhes de certificados mais adiante.
Primeiro, vou explicar como configurar o OpenVPN e depois explicarei como fazer a bridge no Linux.
Configurando o OpenVPN
O OpenVPN é um pouco diferente: ele não cria nenhum diretório padrão, nem arquivos de configuração na instalação. Quando você vai criar uma nova VPN você começa um novo arquivo de configuração do zero.Crie o diretório /etc/openvpn:
# mkdir /etc/openvpn
Para dentro deste diretório você deve copiar o diretório easy-rsa, que está dentro do diretório criado quando você descompactou o OpenVPN na sua máquina.
# cp -R openvpn-2.0.9/easy-rsa /etc/openvpn
O easy-rsa é um conjunto de scripts que facilitam o processo de criação de certificados digitais. Estes serão utilizados para autenticar os usuários e permitir que eles estabeleçam a conexão com o nosso servidor.
Depois, crie um diretório que irá guardar os arquivos de configuração da VPN que iremos criar. Você pode dar qualquer nome a este diretório. Aqui, vou chamá-lo de vol-vpn:
# mkdir /etc/openvpn/vol-vpn
Dentro dele, crie um arquivo texto com qualquer nome. Ele irá conter todos os parâmetros da configuração da VPN que estamos fazendo. Ele vai ficar mais ou menos assim:
# cat /etc/openvpn/vol-vpn.conf
# Define em qual endereço o servidor aceitará conexões
# Coloque um endereço válido no seu arquivo
local 10.0.0.1
# Porta na qual o servidor aceitará conexões
port 1194
# Protocolo utilizado no túnel
proto udp
# Dispositivo utilizado pelo OpenVPN
dev tap0
# Indica que o servidor atuará como o
# controlador no canal de comunicação
# durante a conexão TLS
tls-server
# Permite que os clientes conectados ao
# servidor troquem pacotes entre si
client-to-client
# Para não precisar especificar o caminho
# completo nas opções ca, cert, key, dh e tls-auth
# utilizamos esta opção
cd /etc/openvpn/keys
ca ca.crt
cert vpnsrv.crt
key vpnsrv.key
dh dh1024.pem
# Chave estática que atua como uma segunda
# camada de proteção. Servidor só aceita conexões caso
# este arquivo também exista no cliente.
# gere com openvpn --genkey --secret ta.key
tls-auth /etc/openvpn/keys/ta.key 0
# Define que atuaremos como servidor
mode server
# Número máximo de clientes simultâneos conectados
# ao servidor. Neste caso, em um dado momento apenas
# 10 clientes conseguirão ficar conectados ao mesmo tempo.
# Mude para o número que você desejar e seus recursos
# permitirem
max-clients 10
# Permite que 2 clientes com o mesmo nome se conectem ao
# servidor ao mesmo tempo. Sem esta opção, o cliente que tentar
# se conectar derruba o cliente já conectado.
duplicate-cn
# Define o IP interno do servidor e a faixa de IP's que serão
# atribuídos aos clientes quando se conectarem. Neste caso, o
# OpenVPN pode atribuir qualquer um dos 20 IP's no range configurado.
server-bridge 192.168.0.1 255.255.255.0 192.168.0.10 192.168.0.30
# Configura o DNS no cliente
push "dhcp-option DNS 192.168.0.254"
# Configura o servidor WINS no cliente. Geralmente
# este é o controlador de domínio da sua rede.
push "dhcp-option WINS 192.168.0.3"
# Define qual será o gateway utilizado pelos clientes
# quando conectarem na VPN. É bom que este gateway seja
# a interface interna do seu servidor OpenVPN.
push "default-gateway 192.168.0.1"
# Define quando a outra ponta está morta. A cada 10 segundos
# um ping é enviado e se não for recebido em 120 segundos uma resposta,
# definimos que a outra ponta está morta.
ping 10
ping-restart 120
# Configura as mesmas opções no cliente.
push "ping 10"
push "ping-restart 60"
# Define que os dados serão comprimidos antes
# de serem enviados pelo canal de comunicação.
comp-lzo
# No arquivo status são gravados os dados dos clientes
# que se conectam ao servidor. Bom para controle do servidor.
status /etc/openvpn/vol-vpn/openvpn-status.log 2
# Quantidade de informações que serão escritas nos logs
# do OpenVPN. Quanto maior o número, mais informações.
verb 4
# Define quais serão os logs do sistema.
log /var/log/openvpn-vol-vpn.log
log-append /var/log/openvpn-vol-vpn.log
# Coloque um endereço válido no seu arquivo
local 10.0.0.1
# Porta na qual o servidor aceitará conexões
port 1194
# Protocolo utilizado no túnel
proto udp
# Dispositivo utilizado pelo OpenVPN
dev tap0
# Indica que o servidor atuará como o
# controlador no canal de comunicação
# durante a conexão TLS
tls-server
# Permite que os clientes conectados ao
# servidor troquem pacotes entre si
client-to-client
# Para não precisar especificar o caminho
# completo nas opções ca, cert, key, dh e tls-auth
# utilizamos esta opção
cd /etc/openvpn/keys
ca ca.crt
cert vpnsrv.crt
key vpnsrv.key
dh dh1024.pem
# Chave estática que atua como uma segunda
# camada de proteção. Servidor só aceita conexões caso
# este arquivo também exista no cliente.
# gere com openvpn --genkey --secret ta.key
tls-auth /etc/openvpn/keys/ta.key 0
# Define que atuaremos como servidor
mode server
# Número máximo de clientes simultâneos conectados
# ao servidor. Neste caso, em um dado momento apenas
# 10 clientes conseguirão ficar conectados ao mesmo tempo.
# Mude para o número que você desejar e seus recursos
# permitirem
max-clients 10
# Permite que 2 clientes com o mesmo nome se conectem ao
# servidor ao mesmo tempo. Sem esta opção, o cliente que tentar
# se conectar derruba o cliente já conectado.
duplicate-cn
# Define o IP interno do servidor e a faixa de IP's que serão
# atribuídos aos clientes quando se conectarem. Neste caso, o
# OpenVPN pode atribuir qualquer um dos 20 IP's no range configurado.
server-bridge 192.168.0.1 255.255.255.0 192.168.0.10 192.168.0.30
# Configura o DNS no cliente
push "dhcp-option DNS 192.168.0.254"
# Configura o servidor WINS no cliente. Geralmente
# este é o controlador de domínio da sua rede.
push "dhcp-option WINS 192.168.0.3"
# Define qual será o gateway utilizado pelos clientes
# quando conectarem na VPN. É bom que este gateway seja
# a interface interna do seu servidor OpenVPN.
push "default-gateway 192.168.0.1"
# Define quando a outra ponta está morta. A cada 10 segundos
# um ping é enviado e se não for recebido em 120 segundos uma resposta,
# definimos que a outra ponta está morta.
ping 10
ping-restart 120
# Configura as mesmas opções no cliente.
push "ping 10"
push "ping-restart 60"
# Define que os dados serão comprimidos antes
# de serem enviados pelo canal de comunicação.
comp-lzo
# No arquivo status são gravados os dados dos clientes
# que se conectam ao servidor. Bom para controle do servidor.
status /etc/openvpn/vol-vpn/openvpn-status.log 2
# Quantidade de informações que serão escritas nos logs
# do OpenVPN. Quanto maior o número, mais informações.
verb 4
# Define quais serão os logs do sistema.
log /var/log/openvpn-vol-vpn.log
log-append /var/log/openvpn-vol-vpn.log
Bem simples, não? Obviamente este é um arquivo básico que tem como objetivo apenas fechar uma VPN que "faz o serviço", nada de avançado. Se você quiser uma explicação detalhada sobre estas e mais outras opções que podem te ajudar bastante, leia o FAQ do OpenVPN.
ja usei muito o openvpn, alias foi a primeira solução de vpn que usei, o openvpn, muito bom recomendo.
o unico chato era que algumas pessoas (usuario chatos) nao queriam usar o cliente do openvpn em suas maquinas windows, ai tive que apelar pro PPTPD, ai o usuário so "disca" igual a uma vpn a la windows microsfot hehe.
recomendo a todos ae!! nao utilizei este artigo, mas pelo que li esta todo correto
parabéns!