Aula20 open vpn

875 visualizações

Publicada em

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Aula20 open vpn

  1. 1. Linux Network Servers OpenVPN www.4linux.com.br 2 / 34
  2. 2. CONCEITO DE VPN www.4linux.com.br 3 / 34
  3. 3. CONCEITO➔ O que é VPN?O surgimento da VPN se deve a necessidade de se utilizarredes de comunicação não confiáveis, como a Internet paratrafegar informações de forma segura. A Virtual PrivateNetwork no passado já esteve associada a serviços remotosde conectividade, como a rede de telefonia públicacomutada (RTPC) ou os PVCs (Permanent VirtualCircuits/Channel) do Frame Relay.A VPN utiliza protocolos de tunelamento e procedimentosde encriptação, garantindo a integridade e autenticidadedos dados. Com a VPN é possível interligar duas ou maisredes, em diferente tipos de sistemas operacionais. www.4linux.com.br 4 / 34
  4. 4. CONFIGURANDO OPENVPN COMCHAVE ESTÁTICA www.4linux.com.br 5 / 34
  5. 5. CONFIGURANDO O SERVIDORNesta configuração, vamos usar chaves estáticas, que éa forma mais simples de configurar a VPN.Vamos gerar uma chave que será usada tanto peloservidor quanto pelo cliente.# aptitude install openvpn# openvpn --genkey --secret /etc/openvpn/chave www.4linux.com.br 6 / 34
  6. 6. CONFIGURANDO O SERVIDOR# vim /etc/openvpn/server.confdev tunifconfig 10.0.0.1 10.0.0.2secret /etc/openvpn/chaveport 5000comp-lzoverb 4keepalive 10 120persist-keypersist-tunfloat www.4linux.com.br 7 / 34
  7. 7. CONFIGURANDO O SERVIDORdev tun → Habilita suporte ao drive TUN/TAP;ifconfig → Cria o IP do servidor (10.0.0.1) com suporte ao IPdo cliente (10.0.0.2);secret → Comando para chamar nossa chave criptografada eo local dela;port → Define a porta que a OpenVPN vai rodar;comp-lzo → Ativa suporte a compressão;verb → Nível para depuração de erros;keepalive → Envia um ping a cada 10 segundos sematividade e a VPN é reiniciada depois de 120 segundos semrespostas. www.4linux.com.br 8 / 34
  8. 8. CONFIGURANDO O SERVIDORpersist-key → Assegura que o daemon mantenha as chavescarregadas, quando a VPN é restabelecida depois de umaqueda de conexão;persist-tun → Assegura que o daemon mantenha ainterface tun aberta, quando a VPN é restabelecida depoisde uma queda de conexão;float → Permite que o túnel continue aberto mesmo que oendereço IP da outra máquina mude. www.4linux.com.br 9 / 34
  9. 9. CONFIGURANDO O CLIENTE# aptitude install openvpn# vim /etc/openvpn/client.confdev tunifconfig 10.0.0.2 10.0.0.1remote 192.168.200.1secret /etc/openvpn/chaveport 5000comp-lzoverb 4keepalive 10 120persist-keypersist-tunfloat www.4linux.com.br 10 / 34
  10. 10. INICIANDO O SERVIÇOCopie o arquivo chave que está em /etc/openvpn/ doServidor para o /etc/openvpn do cliente.No servidor:# /etc/init.d/openvpn startNo cliente:# /etc/init.d/openvpn start www.4linux.com.br 11 / 34
  11. 11. INICIANDO O SERVIÇONo servidor:# ifconfigtun0 Link encap:Não Especificado Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet end.: 10.0.0.1 P-a-P:10.0.0.2No cliente:# ifconfigtun0 Link encap:Não Especificado Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet end.: 10.0.0.2 P-a-P:10.0.0.1 www.4linux.com.br 12 / 34
  12. 12. CONFIGURANDO OPENVPN COM CERTIFICADOS www.4linux.com.br 13 / 34
  13. 13. MELHORANDO A SEGURANÇAA OpenVPN oferece vários mecanismos paraadicionar camadas adicionais de segurança, comopor exemplo rodar em chroot, uso de conexõesTLSs, certificados, uso de chaves com maiores bits.Todas essas camadas previnem ataques como “Manin the Middle”, “DoS”, “Flooding”, “Port scanning”e “Buffer overflow”. www.4linux.com.br 14 / 34
  14. 14. OPENVPN SEM PRIVILÉGIO DEROOTAdicione a configuração no servidor e cliente:, as opções“user” e “group” para que o OpenVPN seja executadocomo usuário nobody e grupo nogroup.# vim /etc/openvpn/server.conf# vim /etc/openvpn/client.confNo final do arquivo coloque:user nobodygroup nogroup www.4linux.com.br 15 / 34
  15. 15. Tls-auth HMACVocê pode adicionar uma assinatura que será verificadaantes do processamento de todos os pacotes UDP Em nossa .configuração do servidor vamos habilitar as seguintesopções:tls-auth → Habilita o controle de conexões tls;tls-server → Ajuda a bloquear ataques DoS e flooding naporta do OpenVPN;ca → Certificado de autoridade (CA) que usa as bibliotecasdo OpenSSL;cert → Certificado do servidor;key → Chave RSA de 2048 do servidor;dh → Parâmetros Diffie-Hellman utilizado para a troca daschaves criptografadas durante a execução;cipher → Define um tipo de criptografia maior. www.4linux.com.br 16 / 34
  16. 16. Tls-auth HMACPara gerar os certificados e chaves o OpenVPN traz junto asua instalação, uma série de scripts chamados “easy-rsa”.Eles podem ser encontrados em/usr/share/doc/openvpn/examples/easy-rsa/2.0/# ls /usr/share/doc/openvpn/examples/easy-rsa/2.0/ www.4linux.com.br 17 / 34
  17. 17. Tls-auth HMACVeja que na lista de scripts cada um, tem uma funçãoespecifica para criação de certificados e chaves. Vamoscopiar o diretório com os scripts para nossa instalação doOpenVPN# cp -a /usr/share/doc/openvpn/examples/easy-rsa/2.0/etc/openvpn/Acesse o diretório com os scripts copiados:# cd /etc/openvpn/2.0 www.4linux.com.br 18 / 34
  18. 18. Tls-auth HMACCrie o subdiretório onde serão armazenadas aschaves e certificado:# mkdir keysGerando certificado CA e chave RSAUtilizando os scripts vamos gerar os certificados echaves, que serão utilizados em nossa configuraçãodo OpenVPN. www.4linux.com.br 19 / 34
  19. 19. GERANDO CERTIFICADOInstale o pacote openssl:# aptitude install openssl# vim varsexport KEY_SIZE=2048export KEY_COUNTRY="BR"export KEY_PROVINCE="SP"export KEY_CITY="SaoPaulo"export KEY_ORG="DEXTER"export KEY_EMAIL="root@dexter.com.br" www.4linux.com.br 20 / 34
  20. 20. GERANDO CERTIFICADOUse a sequência de comandos abaixo para gerar ocertificado de autoridade:# source vars# ./clean-all# ./build-caPreencha as informações do certificado:Country Name (2 letter code) [BR]:BRState or Province Name (full name) [SP]:SPLocality Name (eg, city) [SaoPaulo]:SaoPauloOrganization Name (eg, company) [DEXTER]:DEXTEROrganizational Unit Name (eg, section) []:DEXTERCommon Name (eg, your name or your servers hostname)[DEXTER CA]:Name []:Email Address [root@dexter.com.br]:root@dexter.com.br www.4linux.com.br 21 / 34
  21. 21. GERANDO CERTIFICADO./build-key-server serverGenerating a 2048 bit RSA private key..............................................................................+++..........+++writing new private key to server.keyCountry Name (2 letter code) [BR]:BRState or Province Name (full name) [SP]:SPLocality Name (eg, city) [SaoPaulo]:SaoPauloOrganization Name (eg, company) [DEXTER]:DEXTEROrganizational Unit Name (eg, section) []:DEXTERCommon Name (eg, your name or your servers hostname)[server]:Name []:Email Address [root@dexter.com.br]:root@dexter.com.br www.4linux.com.br 22 / 34
  22. 22. GERANDO CERTIFICADOUsing configuration from /etc/openvpn/2.0/openssl.cnfThe Subjects Distinguished Name is as followscountryName :PRINTABLE:BRstateOrProvinceName :PRINTABLE:SPlocalityName :PRINTABLE:SaoPauloorganizationName :PRINTABLE:DEXTERorganizationalUnitName:PRINTABLE:DEXTERcommonName :PRINTABLE:serveremailAddress :IA5STRING:root@dexter.com.brCertificate is to be certified until Jun 25 01:31:25 2021 GMT(3650 days)Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]yWrite out database with 1 new entriesData Base Updated www.4linux.com.br 23 / 34
  23. 23. GERANDO CERTIFICADOListe o conteúdo do subdiretório keys e verifique o arquivode certificado do servidor (server.csr), o arquivo da chavedo servidor (server.key) e o certificado auto assinado(server.crt).Gerando parâmetros Diffie-HellmanOs parâmetros Diffie-Hellman são utilizados para a trocadas chaves criptografadas durante a execução do OpenVPN.Use o script abaixo para gerar os parâmetros:# ./build-dh www.4linux.com.br 24 / 34
  24. 24. CONFIGURANDO O SERVIDORListe o conteúdo do subdiretório keys e verifique o arquivocom os parâmetros Diffie-Hellman (dh2048.pem).Configurando o servidor OpenVPNCom os certificados e chaves gerados, abra o arquivo doservidor e adicione as opções abaixo:# vim /etc/openvpn/server.conf www.4linux.com.br 25 / 34
  25. 25. CONFIGURANDO O SERVIDOR# vim /etc/openvpn/server.confdev tunifconfig 10.0.0.1 10.0.0.2port 5000comp-lzoverb 4keepalive 10 120persist-keypersist-tunfloatuser nobodygroup nogrouptls-servertls-auth chave 0 www.4linux.com.br 26 / 34
  26. 26. CONFIGURANDO O SERVIDORContinuação:# vim /etc/openvpn/server.confca 2.0/keys/ca.crtcert 2.0/keys/server.crtkey 2.0/keys/server.keydh 2.0/keys/dh2048.pemcipher DES-EDE3-CBC www.4linux.com.br 27 / 34
  27. 27. CONFIGURANDO O CLIENTEAinda na máquina servidor crie a chave e o certificado paraa máquina cliente, com o hostname da maquina cliente.# cd /etc/openvpn/2.0# ./build-key clientCountry Name (2 letter code) [BR]:BRState or Province Name (full name) [SP]:SPLocality Name (eg, city) [SaoPaulo]:SaoPauloOrganization Name (eg, company) [DEXTER]:DEXTEROrganizational Unit Name (eg, section) []:DEXTERCommon Name (eg, your name or your servers hostname)[client]:Name []:Email Address [root@dexter.com.br]:root@dexter.com.br www.4linux.com.br 28 / 34
  28. 28. CONFIGURANDO O CLIENTEThe Subjects Distinguished Name is as followscountryName :PRINTABLE:BRstateOrProvinceName :PRINTABLE:SPlocalityName :PRINTABLE:SaoPauloorganizationName :PRINTABLE:DEXTERorganizationalUnitName:PRINTABLE:DEXTERcommonName :PRINTABLE:clientemailAddress :IA5STRING:root@dexter.com.brCertificate is to be certified until Jun 25 01:51:26 2021 GMT(3650 days)Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]yWrite out database with 1 new entriesData Base Updated www.4linux.com.br 29 / 34
  29. 29. CONFIGURANDO O CLIENTEFaça a copia dos arquivos abaixo via ssh para a máquinacliente.# cd /etc/openvpn/2.0/keys# scp client.key client.crt ca.crtroot@IP_DO_CLIENTE:/etc/openvpn www.4linux.com.br 30 / 34
  30. 30. CONFIGURANDO O CLIENTE# vim /etc/openvpn/client.confdev tunifconfig 10.0.0.2 10.0.0.1remote 192.168.200.1port 5000comp-lzoverb 4keepalive 10 120persist-keypersist-tunfloatuser nobodygroup nogroupns-cert-type server www.4linux.com.br 31 / 34
  31. 31. CONFIGURANDO O CLIENTEContinuação:# vim /etc/openvpn/client.conftls-clienttls-auth chave 1ca ca.crtcert client.crtkey client.keycipher DES-EDE3-CBC www.4linux.com.br 32 / 34
  32. 32. CONFIGURANDO O CLIENTEDescrição das novas opções utilizadas:ns-cert-type → Indica que certificado foi assinado peloservidor;tls-client → Habilita conexão TLS, ajudando a bloquearataques DoS e flooding na porta do OpenVPN.No servidor:# /etc/init.d/openvpn startDepos no cliente:# /etc/init.d/openvpn start www.4linux.com.br 33 / 34
  33. 33. CHECANDO CONEXÃONo servidor:# ifconfigtun0 Link encap:Não Especificado Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet end.: 10.0.0.1 P-a-P:10.0.0.2Masc:255.255.255.255No cliente:# ifconfigtun0 Link encap:Não Especificado Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet end.: 10.0.0.2 P-a-P:10.0.0.1Masc:255.255.255.255 www.4linux.com.br 34 / 34

×