Configuração do OpenVPN no Ubuntu 18.04 Bionic Beaver Linux
- 1670
- 2
- Spencer Emard
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 desudo
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
- « Como personalizar o painel de docks no Ubuntu 18.04 Bionic Beaver Linux
- Como instalar o Kylin Desktop no Ubuntu 18.04 Bionic Beaver Linux »