Configuração do OpenVPN no Ubuntu 18.04 Bionic Beaver Linux

Configuração do OpenVPN no Ubuntu 18.04 Bionic Beaver Linux

Objetivo

Aprenda a instalar e configurar o OpenVPN Server no Ubuntu 18.04 Bionic Beaver

Requisitos

  • Permissões de raiz

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios de raiz também
    diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Outras versões deste tutorial

Ubuntu 20.04 (fossa focal)

Introdução

A tecnologia de rede privada virtual torna possível acessar redes privadas e seguras usando redes menos seguras como a Internet. As VPNs são normalmente usadas para conectar ramificações fisicamente remotas de uma organização, fazendo -as aparecer como se fossem parte da mesma LAN (por exemplo, dois escritórios em diferentes cidades). O tráfego entre os lados da conexão é criptografado usando túneis, que protege os dados transmitidos e as informações da conexão. Para as mesmas características, as VPNs são frequentemente usadas para contornar as restrições do governo e anonimizar o tráfego da Internet.

Neste tutorial, veremos como criar um servidor de rede privado virtual usando o OpenVPN, o software VPN de código aberto no Ubuntu 18.04 Bionic Beaver.

Etapa 1 - Instalação

Instalando o OpenVPN no Ubuntu 18.04 é realmente fácil: o software está disponível nos repositórios padrão. Também precisamos instalar o Easy-RSA Pacote, que nos ajudará na criação dos certificados e chaves necessários:

$ sudo apt-get update && sudo apt-get install openvpn easy-rsa

Poucos segundos e o software será instalado em nossa máquina, pronto para ser configurado.

Etapa 2 - configuração de infraestrutura do servidor

Nesta seção, geraremos os certificados e chaves necessários: primeiro criaremos nosso personalizado Ca (Autoridade de certificado), então geraremos o servidor Certificado/par de chave, o Diffie-Hellman parâmetros e o TLS-AUTH KEY.

Vamos começar gerando o diretório que conterá os scripts que farão o trabalho pesado para nós. Nós executamos o FAPLIR comando, isso faz parte do Easy-RSA pacote, fornecendo o nome do diretório que queremos criar. Também queremos entrar no diretório assim que for criado:

Certificados $ Make-Cadir && CD

Nesse caso, liguei para o diretório certificados. Este será o nosso diretório de trabalho para o restante do tutorial; portanto, todos os comandos mencionados devem ser considerados como lançados dentro dele.



Passo 2.1 - Configuração das variáveis

Como primeira coisa, precisamos ajustar as variáveis ​​que serão usadas para definir os valores usados ​​durante a geração da autoridade de certificado e o certificado/chave. As variáveis ​​são definidas dentro do vars arquivo:

exportar key_config = "$ easy_rsa/whatsensslcnf $ easy_rsa" export key_country = "us" export key_province = "ca" export key_city = "sanfrancisco" export key_org = "fort-funston" export key_email = "me myhost".MyDomain "exportar key_ou =" MyorganizationalUnit " 

Uma variável muito importante é Key_config, que, por padrão, é definido chamando um pequeno script de wrapper que deve recuperar a configuração SSL certa. No entanto, se usado dessa maneira, gera um erro, porque o script não recupera a configuração. Para evitar isso, especificamos o arquivo de configuração diretamente:

exportar key_config = "$ easy_rsa/OpenSSL-1.0.0.CNF "

Os valores para as outras variáveis ​​devem ser alterados e adaptados às suas necessidades específicas. Depois que terminamos de editar o arquivo, devemos "obtê -lo", para deixar as variáveis ​​se tornarem parte do nosso ambiente de tempo de execução:

$ fonte vars

Passo 2.2 - Geração do CA

Podemos prosseguir e gerar nossa CA (autoridade de certificado). Executando o limpar tudo e Build-Ca scripts em ordem. A geração da CA começará, usando os valores das variáveis ​​que definimos no vars arquivo como padrões para os campos correspondentes:

$ ./limpar tudo && ./Build-Ca

Passo 2.3 - Certificado e geração de chave

A próxima etapa é a geração do certificado e a chave para o servidor. É apenas uma questão de executar o script do servidor de compilação, dando o nome que queremos usar para o certificado e a chave como parâmetro. Nesse caso, usamos "servidor" porque é o nome padrão usado no arquivo de configuração da VPN, como veremos mais no tutorial:

$ ./Build-key-server servidor

Siga as instruções na tela. O Desafiar senha e nome da empresa Os campos são opcionais.

Passo 2.4 - Diffie -Hellman Parâmetros Geração

O próximo passo é criar os parâmetros Diffie-Hellman. Esses parâmetros são usados ​​para trocar chaves criptográficas usando um canal público e inseguro. Nós usamos o build-dh roteiro:

$ ./build-dh

O script levará algum tempo para gerar os parâmetros, dependendo da máquina em que estivermos executando, seja paciente!

Passo 2.5 - Gere uma chave aleatória para ser usada como um segredo compartilhado

Para fortalecer nossa segurança, além de usar um certificado, geraremos e usaremos uma chave para usar um segredo compartilhado. O servidor e cada cliente precisarão de uma cópia desta chave:

$ OpenVPN -Genkey -Secret Keys/TA.chave

Passo 2.6 - Copiando os arquivos gerados

A Autoridade de Certificação (CA.CRT), certificado (servidor.CRT), chave (servidor.chave), parâmetros Diffie-Hellman (DH2048.PEM) e TLS-Auth Key (TA.arquivos de chave), deveria ter sido gerado dentro do chaves diretório. Agora é hora de copiá -los para /etc/openvpn:

$ sudo cp chaves/servidor.CRT, servidor.Key, CA.CRT, DH2048.PEM, TA.chave /etc /OpenVPN

Etapa 3 - Configuração do OpenVPN

Podemos prosseguir na configuração do serviço OpenVPN. Uma configuração de amostra (comprimida) pode ser encontrada em /usr/share/doc/openvpn/exemplos/sample-config-files/servidor.conf.gz: Só precisamos extraí -lo para o diretório /etc /openvpn:

$ gzip -d -c/usr/share/doc/openvpn/exemplos/sample -config -files/servidor.conf.gz | sudo tee/etc/openvpn/servidor.conf> /dev /null

Com o comando acima, descomprimimos o arquivo original, enviando sua saída para Stdout e redirecionando -o através do /etc/openvpn/servidor.conf arquivo. Verifique se os valores padrão no arquivo de configuração correspondem aos que geramos:

CA CA.Servidor CRT CERT.CRT Key Server.Chave # Este arquivo deve ser mantido secreto dh dh2048.PEM 


Etapa 4 - Configure o firewall e permita o encaminhamento de IP

Quase terminamos de configurar nosso servidor VPN: agora devemos configurar o firewall, a fim de permitir o tráfego de entrada da porta 1194/UDP (porta e protocolo padrão):

$ sudo ufw permitir o OpenVPN

Muito importante: por padrão, apenas o tráfego entre o cliente e o servidor passa pelo túnel da VPN, isso exclui o tráfego da Internet. Para mudar esse comportamento, primeiro temos que descomentar a opção na linha 192 do arquivo de configuração do servidor (/etc/openvpn/servidor.conf):

Empurre "Redirect-gateway def1 bypass-dhcp" 

Em seguida, precisamos usar uma regra iptable para nAT o cliente VPN através da Internet. Observe que eu especifiquei o eth0 Interface, mas você precisa adaptar a regra à interface em uso em sua máquina:

$ sudo iptables -t nat -a postouting -s 10.8.0.0/24 -O ETH0 -J

Defina dessa maneira, no entanto, a regra não persistirá uma reinicialização. Para torná -lo persistente, devemos adicioná -lo ao /etc/ufw/antes.regras arquivo. Este arquivo contém regras que são aplicadas pelo UFW antes das definidas da linha de comando. Adicione a regra como a primeira no arquivo:

*NAT: Postrouting aceita [0: 0] -A Postrouting -s 10.8.0.Comitê de máscaras de 0/8 -o eth0 -j 

Agora devemos ativar o encaminhamento de pacotes. Primeiro, precisamos editar o /etc /sysctl.arquivo conf e descomamento da linha 28:

# Uncomment a próxima linha para ativar o encaminhamento de pacotes para IPv4 net.IPv4.ip_forward = 1 

Neste ponto, devemos recarregar a configuração:

$ sudo sysctl -p /etc /sysctl.conf

Ainda precisamos permitir o encaminhamento de pacotes através do UFW Firewall. Abrir /etc/default/ufw e mudar Default_forward_policy de DERRUBAR para ACEITAR:

# Defina a política avançada padrão para aceitar, soltar ou rejeitar. Observe que # se você alterar isso, provavelmente desejará ajustar suas regras default_forward_policy = "aceitar" 

Finalmente, recarregue o firewall:

$ sudo ufw recarregar

Etapa 5 - Inicie o serviço

Agora usaremos o SystemCTL para iniciar o servidor, passando a variável que contém o nome do nosso arquivo de configuração para a unidade de serviço. Ao usar o Systemd, podemos fazer isso prefixando o valor com o @ símbolo. Por exemplo:

$ sudo systemctl start openvpn@servidor

Neste ponto, o servidor deve estar em funcionamento. Verifique correndo correndo

$ sudo systemctl is-attive openvpn@servidor

O comando deve retornar "ativo".



Etapa 6 - Configuração do cliente

Para cada cliente que queremos usar, devemos gerar um certificado/par de chaves, assim como fizemos acima para o servidor:

$ fonte vars && ./cliente de chave de construção

Agora temos duas opções: podemos copiar os arquivos necessários para o nosso cliente, ou podemos gerar um .Ovpn arquivo, no qual o conteúdo desses arquivos é incorporado. Vamos nos concentrar na segunda opção.

Assim como fizemos ao lado do servidor, levaremos uma configuração de amostra como nosso ponto de partida. Vamos criar um diretório dedicado e copiar o modelo:

$ mkdir clientes && cp/usr/share/doc/openvpn/exemplos/sample-config-files/cliente.clientes confiados/cliente.Ovpn

Siga as seções muito comentadas do arquivo e adapte as opções às definidas na configuração do servidor (no nosso caso, já foi feito). Defina o IP e a porta do servidor modificando a configuração (linha 42):

My-Server-1 1194 remoto 

Onde "my-server" deve ser substituído pelo IP do servidor e a porta deve ser alterada se não estiver usando o padrão. Em seguida, descomamento das seguintes linhas (61,62):

# PRIVILIDADES DE RADELHO AS APÓS A inicialização (somente sem janelas); Usuário ninguém; Grupo Nogroup 

Agora, substituiremos as referências a CA, certificado, chave, parâmetros DH e chave TLS-AUTH com o conteúdo real dos arquivos: dessa maneira, criaremos uma configuração incorporada e facilmente exportável. Primeiro comentário referências (linhas 88-90 e 108)

#ca ca.CRT #CERT Client.CRT #key Client.chave #tls-auth ta.chave 1

Em seguida, copie o conteúdo dos arquivos mencionados, entre as tags apropriadas. O conteúdo da autoridade de certificado deve ser incluído entre tags, o conteúdo do arquivo de certificado dentro e a chave entre . Apenas como exemplo, considere o CA:

 # Aqui vai o conteúdo da CA.Arquivo CRT  

Para a chave TLS-Auth, em vez disso, faríamos:

direção-chave 1 # o conteúdo do TA.Arquivo -chave  

Por fim, basta importar o arquivo no seu aplicativo cliente e você deve estar pronto para ir.

Exemplo de conexão Android

Para conectar -se ao nosso servidor OpenVPN do Android, usaremos o aplicativo OpenVPN oficial: OpenVPN Connect. Depois de instalado e lançado, o menu a seguir aparecerá:

Menu do aplicativo Android OpenVPN



Toque em On, o último item, Perfil OVPN

Do seletor de arquivos, navegue até o local onde você armazenou o .arquivo OVPN e selecione -o em “Importar” no canto superior direito. O perfil deveria ter sido importado corretamente:

Importação de aplicativos Android OpenVPN
Agora, o mesmo de antes, toque em Adicionar e na tela a seguir ativar a conexão:

Aplicativo Android OpenVPN conectado
Sucesso!

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Ubuntu 20.04 truques e coisas que você pode não saber
  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Ubuntu básico 22.04 Configuração do OpenVPN Client/Server Connection
  • Ubuntu 20.04 Guia
  • Ubuntu 20.04 Hadoop
  • Os 8 melhores ambientes de desktop do Ubuntu (20.04 Fossa focal…
  • Lista de clientes FTP e instalação no Ubuntu 20.04 Linux…
  • Gerentes de rede Linux GUI