OpenVPN

De Wiki Projeto Root
Ir para navegação Ir para pesquisar

Sobre

Olá! Visitante, reunimos aqui, informações sobre o Software de VPN (Virtual Private Network), OpenVPN. O OpenVPN é um software livre e open-source para criar redes privadas virtuais do tipo ponto-a-ponto ou server-to-multiclient através de túneis criptografados entre computadores. Ele é capaz de estabelecer conexões diretas entre computadores mesmo que estes estejam atrás de Nat Firewalls sem necessidade de reconfiguração da sua rede. Ele foi escrito por James Yonan e publicado sob licença GNU General Pulic Licence (GPL)

Fonte: https://openvpn.net/


Vídeos

Parte 01 - https://youtu.be/YrmmahvTupQ

Parte 02 - https://youtu.be/cc-E8GjDGLw

Parte 03 - https://youtu.be/ID6qChl3WWQ

Instalando o OpenVPN no Debian

Atualizando o Sistema

  apt-get update && apt-get upgrade && apt-get dist-upgrade
  apt-get autoremove && apt-get autoclean && apt-get clean

Install OpenVPN

  • 1 - Instalar o OpenVPN e Easy-RSA (Criptografia)
   apt-get install openvpn easy-rsa
  • 2 - Extrair o arquivo server.conf de exemplo colocando ele em /etc/openvpn
   gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
  • 3 - Editar server.conf
   nano /etc/openvpn/server.conf
  • 4 - Alterar o parametro de DH (diffie hellman)
   dh dh2048.pem
  • 5 - Alterar o parâmetro (descomentando, removendo o (;) )para redirecionar o tráfego
   push "redirect-gateway def1 bypass-dhcp"
  • 6 - Alterar os DNS e descomentando (removendo ;)
   push "dhcp-option DNS 8.8.8.8" 
   push "dhcp-option DNS 8.8.4.4" 
  • 7 - Descomentar as linhas de user e group
   user nobody
   group nogroup
  • 8 - Habilitar o encaminhamento de pacotes (Forwarding)
   echo 1 > /proc/sys/net/ipv4/ip_forward
  • 9 - Deixando persistente no sistema o Forward, descomente a linha net.ipv4.ip_forward=1
   nano /etc/sysctl.conf
   net.ipv4.ip_forward=1


Firewall

  • 10 - Instalando um auxiliar (frontend) de Firewall.
   apt-get install ufw
  • 11 - Liberando o SSH e a porta 1194/UDP (porta do openvpn)
   ufw allow ssh
   ufw allow 1194/udp
  • 12 - Editando as políticas do UFW
   nano /etc/default/ufw
   
   Altere de DROP para ACCEPT
   
   DEFAULT_FORWARD_POLICY="ACCEPT"
  • 13 - Adicionado regras no UFW
   nano /etc/ufw/before.rules
   
   Adicione logo após #rules.before
   
  # START OPENVPN RULES
  # NAT table rules
  *nat
  :POSTROUTING ACCEPT [0:0]
  # Allow traffic from OpenVPN client to eth0
  -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
  COMMIT
  # END OPENVPN RULES
  
  • 14 - Habilitando UFW
  ufw enable
  • 15 - Verificando UFW
  ufw status


Configurações

  • 16 - Criando e Configurando Certificados (SERVER)
   cp -r /usr/share/easy-rsa/ /etc/openvpn
   mkdir /etc/openvpn/easy-rsa/keys
  • 17 - Editar o arquivo Vars e modificar
   nano /etc/openvpn/easy-rsa/vars
   
   export KEY_COUNTRY="BR"
   export KEY_PROVINCE="RS"
   export KEY_CITY="RIO GRANDE"
   export KEY_ORG="PROJETO ROOT"
   export KEY_EMAIL="[email protected]"
   export KEY_OU="Usuarios do PROJETO"
   
   export KEY_NAME="server"

Certificados

  • 18 - Gerando o DH (Diffie-Helman)
   openssl dhparam -out /etc/openvpn/dh2048.pem 2048
  • 19 - Criando o CERTIFICADO
   cd /etc/openvpn/easy-rsa
   . ./vars
   ./clean-all
   ./build-ca
   ./build-key-server server
  • Caso Exiba este erro:
    **************************************************************
    No /etc/openvpn/easy-rsa/openssl.cnf file could be found
    Further invocations will fail
    **************************************************************
  • Faça:
 ln -s openssl-1.0.0.cnf openssl.cnf


  • 20 - Copiar o certificado para o local correto (/etc/openvpn)
   cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn
  • 21 - verificar a existencia do certificado
   ls /etc/openvpn
  • 22 - Inicializando e verificando o OpenVPN
   service openvpn start
   service openvpn status
  • 23 - Gerando Certificado e Keys para Clientes
   cd /etc/openvpn/easy-rsa/
   ./build-key usuario1
   
  • 24 - Criando o arquivo .ovpn para os clientes conectarem
    cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/usuario1.ovpn
  • 25 - Preparar o arquivo
    nano /etc/openvpn/easy-rsa/keys/usuario.ovpn
    remote seu-nome-dns 1194
    
    descomentar a linha user e group
    user nobody
    group no group
  • 26 - transferindo arquivos para cliente (usuario)
   scp /etc/openvpn/keys/usuario.* usuario@ipdocliente:/etc/openvpn

OBS: arquivos para enviar para o cliente: usuario.crt usuario.key usuario.ovpn ca.crt

Profiles

  • 27 - Criando Profile para Clientes

Editar o arquivo .ovpn

   comentar as linhas
   # SSL/TLS parms.
   # . . .
   ;ca ca.crt
   ;cert client.crt
   ;key client.key


  • 28 - Adicionar o CA
   echo '<ca>' >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
   cat /etc/openvpn/ca.crt >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
   echo '</ca>' >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
  • 29 - Adicionar o Cert
   echo '<cert>' >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
   cat /etc/openvpn/easy-rsa/keys/usuario.crt >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
   echo '</cert>' >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
  • 30 - Adicionar a KEY
   echo '<key>' >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
   cat /etc/openvpn/easy-rsa/keys/client1.key >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
   echo '</key>' >> /etc/openvpn/easy-rsa/keys/usuario.ovpn
  • 31 - Instalar/copiar Profile no cliente:
   Windows: C:\Program Files\OpenVPN\config
   Linux: /etc/openvpn/
   
   Android/IOS:
   
   Instalar o aplicativo OpenVPN no Android em ( https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=pt_BR ), no 
   Iphone em ( https://itunes.apple.com/br/app/openvpn-connect/id590379981?mt=8 ) 
   
   Salvar os arquivos do Usuário, pode ser até na pasta download, no OpenVpn no android/iphone ir em:
   ... (de lado)
   import
   import Profile from sd card

Revogar certificados no OpenVPN

  • 1 - Entrar na pasta do easy-rsa
   cd /etc/openvpn/easy-rsa
  • 2 - Carregar as variáveis
   . ./vars
  • 3 - Utilizar o comando para revogar juntamente com o nome completo do usuario
   ./revoke-full [email protected]
  • 4 - Preparar o servidor para ignorar certificados revogados editando o arquivo de conf e colocando na última linha:
   nano /etc/openvpn/server.conf
   
   crl-verify /etc/openvpn/easy-rsa/crl.pem
  • 5 - Para aplicar a modificação reiniciar o serviço com o comando
   /etc/init.d/openvpn restart
   
  • Para revogar futuros usuários basta repetir os passos: 1,2,3 e 5.