LPI-2 202-450 Topico 212.5
OpenVPN
Índice
212.5 OpenVPN - Objetivos
Peso 2
O candidato deve ser capaz de configurar uma VPN (Virtual Private Network ou rede privada virtual em tradução nossa) a criar conexões seguras ponto-a-ponto ou site-a-site;
Conhecimentos-chave:
Lista parcial dos arquivos, termos e ferramentas utilizados:
212.5 OpenVPN - Conteúdo
Imagine que você está trabalhando para uma empresa. E a você foi solicitado fornecer acesso seguro à lan da empresa para outro usuário ou filial remota da empresa. O problema é que nosso tráfego deve ser transferido pela internet, que é roteada e não confiável. A solução é VPN.
VPN (Virtual Private Network ou rede privada virtual) é uma solução tecnológica usada para prover privacidade e segurança para conexções de rede.
- É virtual pois é como se estivéssemos em uma conexão direta com o outro computador ao qual conectamos;
- É privada porque todo o tráfego é criptografado e ninguém conseguirá extrair dados se os pacotes forem capturados;
- É uma rede pois pode-se conectar vários computadores independentes dentro de um mesmo escopo ou domínio.
Normalmente, a criptografia adicionada é SSL/TLS, que usa certificados para garantir que a conexão seja criptografada e estabelecida também entre partes confiáveis.
Existem dois tipos de conexão VPN:
- Ponto a ponto
a VPN mais comumente usada. VPNs PPTP são usadas por usuários remotos para conectá-los à rede VPN usando sua conexão de Internet existente. Esta é uma VPN útil para usuários comerciais e domésticos.
Figura 1: Diagrama vpn ponto a ponto ou Client to Site
- Site to Site
é usado principalmente em operações baseadas em empresas. O fato de que muitas empresas têm escritórios localizados nacional e internacionalmente, uma VPN Site to Site é usada para conectar a rede do escritório principal a vários escritórios. Isso também é conhecido como VPN baseada em intranet.
Figura 2: Diagrama VPN site to site
OpenVPN
OpenVPN é um aplicativo de software livre licenciada sob a GNU GPLv2 que implementa técnicas de rede privada virtual (VPN) para criar conexões seguras ponto a ponto ou site a site.
O OpenVPN pode usar uma variedade de métodos, como chaves secretas pré-compartilhadas, certificados ou nomes de usuário/senhas, para permitir que os clientes se autentiquem no servidor. O OpenVPN usa o protocolo OpenSSL e implementa muitos recursos de segurança e controle, como autenticação de resposta de desafio, capacidade de logon único, balanceamento de carga e recursos de failover e suporte a vários daemon.
Por padrão, o OpenVPN funciona na porta 1194 UDP, mas o OpenVPN é plenamente capaz de atravessar firewalls de forma transparente, especialmente quando a porta padrão é alterada para 443.
O diretório de configuração do OpenVPN
Após instalado os arquivos de configuração do OpenVPN devem residir no
diretório /etc/openvpn/
. Porém por padrão após a instalação este
diretório fica vazio. Portanto precisamos criar nossos próprios
arquivos de configuração ou podemos facilmente copiar arquivos de
configuração de amostra de /usr/share/doc/openvpn-x
para o
diretório /etc/openvpn
e modificá-los (da maneira mais simples).
┌─[root@Debianlpi]──[18:24]──[~] └─[1007]─># tree /usr/share/doc/openvpn-2.4.6/ /usr/share/doc/openvpn-2.4.6/ ├── AUTHORS ├── ChangeLog ├── Changes.rst ├── contrib │ ├── OCSP_check │ │ └── OCSP_check.sh │ ├── openvpn-fwmarkroute-1.00 │ │ ├── fwmarkroute.down │ │ ├── fwmarkroute.up │ │ └── README │ ├── pull-resolv-conf │ │ ├── client.down │ │ └── client.up │ └── README ├── COPYING ├── COPYRIGHT.GPL ├── management-notes.txt ├── README ├── README.auth-pam ├── README.down-root ├── README.systemd └── sample ├── sample-config-files │ ├── client.conf │ ├── firewall.sh │ ├── home.up │ ├── loopback-client │ ├── loopback-server │ ├── office.up │ ├── openvpn-shutdown.sh │ ├── openvpn-startup.sh │ ├── README │ ├── roadwarrior-client.conf │ ├── roadwarrior-server.conf │ ├── server.conf │ ├── static-home.conf │ ├── static-office.conf │ ├── tls-home.conf │ ├── tls-office.conf │ ├── xinetd-client-config │ └── xinetd-server-config ├── sample-scripts │ ├── auth-pam.pl │ ├── bridge-start │ ├── bridge-stop │ ├── ucn.pl │ └── verify-cn └── sample-windows └── sample.ovpn 8 directories, 41 files
De modo geral os arquivos válidos de configuração do OpenVPN em
sistemas GNU/Linux devem conter o apêndice .conf
.
client dev tun proto udp remote 207.38.12.46 nobind
A primeira linha do arquivo de exemplo determina que a conexão a
subir será uma conexão cliente de OpenVPN. A diretiva dev
indica
qual tipo de interface virtual a utilizar. A diretiva proto
indica o protoclolo TCP ou UDP e, por fim, na diretiva remote
especificamos o endereço de IP do servidor OpenVPN a se conectar
(nesse campo também poderíamos usar um FQDN), por fim nobind
informa ao OpenVPN-client a escolher uma porta dinâmica de origem
ao se conectar com o OpenVPN-Server.