Como instalar e configurar o servidor OpenVPN no Ubuntu 18.04, 16.04

Como instalar e configurar o servidor OpenVPN no Ubuntu 18.04, 16.04

VPN ou rede privada virtual é um grupo de computadores conectados à rede privada pela rede pública (Internet). Hoje em dia, a segurança é a principal preocupação para todos e é mais necessária enquanto trabalha na rede pública.

Como se você tivesse um grupo de computadores em um local remoto. Agora você precisa acessar esses computadores como uma rede LAN em seu sistema. Além disso, você precisa de todos os dados devem ser criptografados durante a transferência entre computadores. A solução é uma VPN. Você pode usar uma rede VPN para conectar dois sistemas de localização remota entre si, pois estão na mesma LAN. Este tutorial ajudará você a instalar e configurar o servidor OpenVPN nos sistemas Ubuntu, Debian e Linux Mint.

Etapa 1 - Pré -requisitos

Faça login no seu sistema Ubuntu usando SSH. Agora atualize o cache apt do sistema e atualize seus pacotes de sistema para as mais recentes versões.

Atualização sudo apt-get updro apt-get 

Etapa 2 - Instale o servidor OpenVPN

Agora, instale o pacote OpenVPN digitando o comando abaixo. Além disso, instale os pacotes Easy-RSA para gerenciar certificados SSL necessários para a criptografia de dados entre o servidor e o cliente.

sudo apt-get install openvpn easy-rsa 

Copie o arquivo de configuração de amostra para openVPN para/etc/openvpn/server.arquivo conf. Isso será usado como um arquivo de configuração do servidor OpenVPN.

Gunzip -c/usr/share/doc/OpenVPN/Exemplos/Sample-Config-Files/Server.conf.gz>/etc/openvpn/servidor.conf 

Etapa 3 - Configurar o servidor OpenVPN

Edite o arquivo de configuração do servidor OpenVPN em seu editor de texto favorito.

vim/etc/openvpn/servidor.conf 

Remova o ";" para linhas de descomposição ou adicionar novas linhas para as seguintes entradas no arquivo de configuração.

 TLS-AUTH TA.Chave 0 Direcção de chave 0 cifra AES-256-CBC AUTH SHA256 COMP-LZO Usuário Ninguém Grupo Nogroup Cert Server.CRT Key Server.chave 

As configurações acima permitirão a conexão VPN entre os sistemas. Mas eles não direcionarão o tráfego da Internet do cliente através da VPN. Além disso, descomment os valores da opção DHCP.

 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option dns 208.67.222.222 "push" dhcp-option dns 208.67.220.220 " 

Etapa 4 - Atualize a configuração de rede

Faça algumas configurações de rede para permitir que os usuários acessem o servidor na mesma rede de servidores OpenVPN. Primeiro, permita o encaminhamento de IP no servidor, executando os comandos abaixo para definir a rede.IPv4.valor ip_forward para 1 in /etc /sysctl.arquivo conf.

eco "net.IPv4.ip_forward = 1 ">> /etc /sysctl.conf sudo sysctl -p 

Mascarada o tráfego da Internet proveniente da rede VPN (10.8.0.0/24) para sistemas Interface de rede local (ETH0). Onde 10.8.0.0 é minha rede VPN e eth0 é a interface de rede do meu sistema.

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

Etapa 5 - Autoridade de Certificado de Configuração

OpenVPN fornece serviço VPN seguro usando a criptografia TLS/SSL do tráfego entre servidor e cliente. Para isso, você precisa emitir certificados confiáveis ​​para servidores e clientes para trabalhar. Para emitir certificados, você precisa configurar a autoridade de certificação em seu sistema.

Vamos criar um diretório para autoridade de certificado usando o comando make-cadir. Este comando também inicializa o diretório com os arquivos necessários.

Make-Cadir/etc/OpenVPN/OpenVPN-CA/CD/etc/OpenVPN/OpenVPN-CA/ 

Editar o arquivo vars em seu editor de texto favorito.

vim vars 

e atualize os valores abaixo, conforme necessário. Esses valores serão usados ​​como valores padrão para emitir os certificados de servidores e clientes. Você também pode substituir esses valores durante a criação de certificados.

exportar key_country = "nós" exportar key_province = "ca" export key_city = "sanfrancisco" exportar key_org = "tecadmin" export key_email = "[email protegido]" export key_ou = "segurança" 

Carregue os valores no ambiente do sistema.

fonte vars 

Agora usa ./limpo-tudo para remover as teclas de saída e depois executar ./Build-CA para criar certificados CA em/etc/OpenVPN/OpenVPN-CA/Diretório.

./limpar tudo ./Build-Ca 

Exemplo de saída do comando acima:

Gerando uma chave privada RSA de 2048 bits… +++… +++ escrevendo nova chave privada para 'CA.chave '----- Você está prestes a ser solicitado a inserir informações que serão incorporadas à sua solicitação de certificado. O que você está prestes a entrar é o que é chamado de nome distinto ou DN. Existem alguns campos, mas você pode deixar alguns em branco para alguns campos, haverá um valor padrão, se você entrar '.', o campo ficará em branco. ----- Nome do país (código de 2 letra) [EUA]: Nome do estado ou da província (nome completo) [CA]: Nome da localidade (por exemplo, cidade) [Sanfrancisco]: Nome da organização (por exemplo, empresa) [Tecadmin]: Nome da unidade organizacional (por exemplo, , seção) [Segurança]: Nome comum (por exemplo, seu nome ou nome do host do seu servidor) [Tecadmin CA]: Nome [Easyrsa]: Endereço de email [[Email Protected]]: 

Agora seu sistema está pronto como autoridade de certificado para emitir os certificados.

Etapa 6 - Gere arquivos de certificado de servidor

Crie primeiro os certificados para o servidor OpenVPN usando o ./Build-key-server comando seguido pelo servidor de palavras-chave para gerar certificados para o servidor. Isso criará certificados necessários, arquivo de chave no diretório de chaves.

cd/etc/openvpn/openvpn-cA/ ./Build-key-server servidor 

Exemplo de saída do comando acima:

… Assinatura OK O nome distinto do sujeito é o seguinte CountryName: Imprimível: 'Us' Stateorprovincename: Imprimível: 'CA' LocalityName: Printable: 'Sanfrancisco' OrganizationName: Printable: 'Tecadmin' OrganizationalUnitName: Printable: 'Security' CommonName: Printable: ' Servidor 'Nome: Imprimível:' Easyrsa 'emailAddress: IA5String:' [email protegido] 'O certificado deve ser certificado até 2 de janeiro de 05:33:24 2028 GMT (3650 dias) assinar o certificado? [S/N]: Y 1 de 1 solicitações de certificado certificado, Comprometo? [S/n] Y Escreva um banco de dados com 1 nova base de dados de entradas atualizada 

Agora gerar uma forte chave Diffie-Hellman a ser usada para a troca de chaves usando o comando. Este comando pode levar algum tempo para concluir.

OpenSSL dhparam -out/etc/openvpn/dh2048.PEM 2048 

Depois disso, gerar uma assinatura HMAC para tornar os recursos de verificação de integridade mais seguros do TLS do servidor.

OpenVPN--Genkey--Secret/etc/OpenVPN/OpenVPN-CA/KEYS/TA.chave 

Depois de criar todos os arquivos, copie -os para /etc /OpenVPN Directory.

cd/etc/openvpn/openvpn-ca/keys sudo cp ca.CRT TA.servidor de chaves.servidor CRT.chave /etc /openvpn 

Etapa 7 - Inicie o serviço OpenVPN

O servidor OpenVPN está pronto agora. Vamos iniciar o serviço usando o comando SystemCTL. Além disso, verifique o status do serviço.

SUDO SYSTEMCTL START [Email Protected] SUDO SYSTEMCTL STATUS [Email Protected] 

No início do serviço bem -sucedido, você verá resultados como abaixo.

● [Email Protected]-Conexão OpenVPN ao servidor carregado: carregado (/lib/systemd/system/[email protegido]; desativado; predefinição do fornecedor: ativado) ativo: ativo (em execução) desde quinta-feira 2018-01-04 11:09: 51 ist; 6s atrás Docs: Man: OpenVPN (8) https: // Comunidade.OpenVPN.net/openvpn/wiki/openvpn23manpage https: // Comunidade.OpenVPN.Net/OpenVPN/Wiki/Howto Process: 4403 ExecStart =/usr/sbin/Openvpn--daemon ovpn-%i-status/run/Openvpn/%i.Status 10 -CD /etc /OpenVPN -PID principal: 4404 (OpenVPN) CGROUP: /System.Fatia/System-OpenVPN.Slice/[email protegido] └─4404/usr/sbin/OpenVPN--daemon ovpn-server-status/run/openvpn/servidor.Status 10-CD /etc /OpenVPN-04 de janeiro 11:09:51 laitkor237 ovpn-server [4404]: /sbin /ip addr add dev tun0 local 10.8.0.1 ponto 10.8.0.2 de janeiro 04 11:09:51 LAITKOR237 OVPN-SERVER [4404]: /rota sbin /ip Add 10.8.0.0/24 via 10.8.0.2 de janeiro 04 11:09:51 laitkor237 ovpn-server [4404]: GID definido como Nogroup 04 11:09:51 laitkor237 ovpn-server [4404]: uid para ninguém em 04 de janeiro 11:09:51 laitkor237 [4404]: link udpv4 Local (limitado): [Underf] 04 de janeiro 11:09:51 LAITKOR237 OVPN-SERVER [4404]: Link Udpv4 Remoto: [Undef] 04 de janeiro 11:09:51 LAITKOR237 OVPN-SERVER [4404] : Multi: multi_init chamado, r = 256 v = 256 Jan 04 11:09:51 laitkor237 ovpn-server [4404]: ifconfig pool: base = 10.8.0.4 tamanho = 62, ipv6 = 0 de janeiro 04 11:09:51 laitkor237 ovpn-server [4404]: Lista de pool ifconfig de janeiro 04 11:09:51 laitkor237 ovpn-server [4404]: sequência de inicialização concluída 

OpenVPN criará um nome de interface de rede TUN0. Execute o comando abaixo para visualizar o IP atribuído à interface. Principalmente atribui o primeiro IP da rede definida no servidor.arquivo conf.

ifconfig tun0 

Etapa 8 - Gere a configuração do cliente

Seu servidor OpenVPN está pronto para usar. Agora gere os arquivos de configuração do cliente, incluindo a chave privada, certificados. Eu facilitei esse processo para você gerar qualquer número de arquivos de configurações usando um script simples. Siga as etapas abaixo para gerar arquivos de configuração. Certifique -se de usar a estrutura de diretório correta.

mkdir/etc/openvpn/clientes cd/etc/openvpn/clientes 

Crie um arquivo de script de shell como abaixo.

vim make-vpn-client.sh 

Copie o conteúdo abaixo. Atualize a variável openvpn_server com o endereço IP do servidor OpenVPN correto e salve -o.

#!/bin/bash # gerar arquivos de configuração de clientes openvpn. Client_name = $ 1 openvpn_server = "192.168.1.237 "ca_dir =/etc/openvpn/openvpn-CA client_dir =/etc/openvpn/clientes cd $ ca_dir fonte vars ./Build-key $ client_name echo "client dev tun proto udp remoto $ openvpn_server 1194 Usuário ninguém em grupo não -lzo verbo 3 "> $ client_dir/$ client_name.Ovpn Cat <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir/$ client_name.OVPN ECHO -E "Arquivo do cliente criado - $ client_dir/$ client_name.ovpn "
12345678910111213141516171819202122232425262728293031323334353637383940#!/bin/bash # gerar arquivos de configuração de clientes openvpn. Client_name = $ 1openvpn_server = "192.168.1.237 "ca_dir =/etc/openvpn/openvpn-caclient_dir =/etc/openvpn/clientes cd $ ca_dir fonte vars./Build-key $ client_name echo "clientDev tunproto udpremote $ openvpn_server 1194User ninguém Grupo NogRouPpersist-Kypersist-Tuncipher Aes-128-CBCAuth shaTer 34B14B) NOME DO CLIENTE.Ovpn Cat <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir/$ client_name.OVPN ECHO -E "Arquivo do cliente criado - $ client_dir/$ client_name.ovpn "

Defina a permissão de execução no script recém -criado.

chmod +x ./make-vpn-client.sh 

Agora use este script para gerar arquivo de configuração para os clientes VPN, incluindo certificados e chaves. Você precisa passar o nome do cliente como parâmetro de linha de comando.

./make-vpn-client.SH VPNCLIENT1 

Pressione Enter os valores padrão do certificado. No final, ele solicitará o sinal do certificado e confirmará. Pressione Y para ambas as entradas.

O certificado deve ser certificado até 2 de janeiro 07:18:10 2028 GMT (3650 dias) assinar o certificado? [S/N]: Y 1 de 1 solicitações de certificado certificado, Comprometo? [s/n] y gravar banco de dados com 1 novo arquivo de dados de dados de entradas Criado -/etc/openvpn/clientes/vpnclient1.Ovpn 

O script acima criará o arquivo de configuração do cliente em/etc/openvpn/clientes/diretório com o nome do cliente com .Extensão OVPN como shows na última linha de saída. Use este arquivo para conectar -se de sistemas remotos.

Etapa 9 - Conecte a VPN dos clientes

Você precisa do arquivo de configuração gerado a partir de cima

Clientes Windows

Faça o download do software OpenVPN GUI Client em sua página de download oficial e instale em seu sistema. Agora copie o dado .Arquivo OVPN em C: \ Arquivos de Programas \ Openvpn \ Config File \ Diretório. Agora inicie o cliente OpenVPN GUI e conecte -se. Em conexão bem-sucedida, você terá um ícone verde em notificações de fundo direito. Você pode visualizar o status por Rigth, clique no ícone.

Clientes Linux

Nos clientes Linux, primeiro, você precisa instalar pacotes OpenVPN. Depois disso, use o seguinte comando para conectar -se ao servidor OpenVPN usando o arquivo de configuração do cliente especificado.

OpenVPN -Config Client1.Ovpn 

Após a conexão bem -sucedida, o OpenVPN atribuirá um endereço IP ao seu sistema. Use o seguinte comando para verificar o endereço IP atribuído.

ifconfig tun0 

[saída]

TUN0 Link Encap: UNSPEC HWADDR 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 INET ADDR: 10.8.0.18 P-T-P: 10.8.0.17 máscara: 255.255.255.255 UP PontoPoint Running Noarp Multicast MTU: 1500 METRIC: 1 RX PACETOS: 0 ERROS: 0 Droped: 0 OVANS: 0 quadro: 0 pacotes TX: 0 Erros: 0 Droped: 0 Overts: 0 Carrier: 0 Colisões: 0 txqueuelen: 100 Rx bytes: 0 (0.0 b) TX bytes: 0 (0.0 b)