Como instalar o OpenVPN Server no Debian 10/9

Como instalar o OpenVPN Server no Debian 10/9

Uma rede privada virtual (VPN) é um protocolo usado para adicionar segurança e privacidade às redes públicas e privadas. VPNs enviam tráfego entre dois ou mais dispositivos em uma rede em um túnel criptografado. Depois que uma conexão VPN é feita, todo o tráfego de rede é criptografado no final do cliente. VPNs mascaram seu endereço IP para que suas ações on -line sejam praticamente sem rastreamento.

Ele fornece criptografia e anonimato e protege suas atividades on -line, compras on -line, envio de e -mails e também ajuda a manter sua navegação na web anônima.

Neste tutorial, mostraremos como instalar e configurar o servidor OpenVPN e o cliente no Debian 10 Server.

Começando

Antes de começar, é uma boa ideia atualizar os pacotes do seu sistema para a versão mais recente.

Execute o seguinte comando para atualizar e atualizar os pacotes do seu sistema:

Atualização apt -get -y apt -get upgrade -y 

Depois que seu sistema estiver atualizado, você poderá prosseguir para a próxima etapa.

Etapa 1 - Ativar encaminhamento IP

Em seguida, você precisará ativar o encaminhamento de IP em seu sistema. O encaminhamento de IP permite que seu sistema operacional aceite os pacotes de rede recebidos e a encaminhe para a outra rede se o destino estiver em outra rede.

Para ativar o encaminhamento de IP, edite o arquivo /etc /sysctl.conf:

nano /etc /sysctl.conf 

Adicione a seguinte linha:

líquido.IPv4.ip_forward = 1 

Salve o arquivo quando terminar. Em seguida, execute o seguinte comando para aplicar as alterações:

sysctl -p 

Etapa 2 - Instale o servidor OpenVPN

Por padrão, o pacote OpenVPN está disponível no Repositório Padrão do Debian 10. Você pode instalá -lo com o seguinte comando:

instalação apt -get OpenVPN -y 

Depois que a instalação for concluída, você também precisará copiar o diretório Easy-RSA para gerenciar certificados SSL.

Execute o seguinte comando para copiar o diretório Easy-RSA do diretório /usr /compartilhar para /etc /openvpn diretório.

cp -r/usr/share/easy -rsa/etc/openvpn/ 

Etapa 3 - Autoridade de Certificado de Configuração

O Easy RSA usa um conjunto de scripts para gerar chaves e certificados. Primeiro, você precisará configurar a autoridade de certificado em seu sistema.

Para fazer isso, altere o diretório para/etc/openvpn/easy-rsA e crie um novo arquivo de configuração do Easy RSA:

cd/etc/openvpn/easy-rsa nano vars 

Adicione as seguintes linhas, incluindo seu país, cidade e endereço de e -mail preferido:

set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "INDIA" set_var EASYRSA_REQ_PROVINCE "Gujrat" set_var EASYRSA_REQ_CITY "Ahmedabad" set_var EASYRSA_REQ_ORG "Tecadmin CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "[email protected]" set_var EASYRSA_REQ_OU "Tecadmin EASY CA" set_var EASYRSA_KEY_SIZE 2048 set_var EASYRSA_ALGO rsa set_var EASYRSA_CA_EXPIRE 7500 set_var EASYRSA_CERT_EXPIRE 365 set_var EASYRSA_NS_SUPPORT "no" set_var EASYRSA_NS_COMMENT "Tecadmin CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.CNF "set_var easyrsa_digest" sha256 " 

Salve o arquivo quando terminar.

Em seguida, execute o seguinte comando para iniciar o diretório PKI.

./easyrsa init-pki 

Saída:

Nota: Usando a configuração Easy-RSA em: ./vars init-pki completo; Agora você pode criar uma CA ou solicitações. Seu pki diretor recém-criado é:/etc/openvpn/easy-rsa/pki 

Em seguida, construa os certificados da CA com o seguinte comando:

./Easyrsa Build-Ca 

Você deve obter a seguinte saída:

Nota: Usando a configuração Easy-RSA em: ./vars usando SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 de maio de 2019 Digite uma nova e-senha de chave da CA: re-entranha nova senha da chave da CA: gerando chave privada RSA, módulo de 2048 bits de comprimento (2 primos)… +++++… +++++ e é 65537 (0x010001) Não é possível carregar/etc/openvpn/easy-rsa/pki/.RND em RNG 140218549745472: Erro: 2406F079: Gerador de número aleatório: rand_load_file: Não é possível abrir o arquivo: criptografia/rand/Randfile.C: 98: nome do arquivo =/etc/openvpn/easy-rsa/pki/.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 comum (por exemplo: seu usuário, host ou nome do servidor) [Easy-RSA CA]: a criação de CA completa e agora você pode importar e assinar solicitações de certificação. Seu novo arquivo de certificado CA para publicação está em:/etc/openvpn/easy-rsa/pki/ca.Crt 

O comando acima gerará dois arquivos chamados CA.chave e ca.Crt. Esses certificados serão usados ​​para assinar seus certificados de servidor e clientes.

Etapa 4 - Gere arquivos de certificado de servidor

Em seguida, você precisará gerar uma solicitação de teclado e certificado para o seu servidor.

Execute o seguinte comando para gerar a chave do servidor chamada Tecadmin-Server:

./Easyrsa Gen-Req Tecadmin-Server Nopass 

Você deve obter a seguinte saída:

Nota: Usando a configuração Easy-RSA em: ./vars usando SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 de maio de 2019 Gerando uma chave privada RSA… +++++… +++++ escrevendo nova chave privada para '/etc/openvpn/easy-rsa/pki/private/tecadmin-server.chave.kolbtwty6a '----- 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 comum (por exemplo: seu usuário, host ou nome do servidor) [Tecadmin-Server]: Solicitação de Teclado e Certificado Concluído. Seus arquivos são: req:/etc/openvpn/easy-rsa/pki/reqs/tecadmin-server.key req:/etc/openvpn/easy-rsa/pki/private/tecadmin-server.chave 

Etapa 5 - Assine a chave do servidor usando CA

Em seguida, você precisará assinar a tecla Tecadmin-Server usando seu certificado CA:

Execute o seguinte comando para assinar a chave do servidor:

./Easyrsa Sign-Req Server Tecadmin-Server 

Você deve obter a seguinte saída:

Nota: Usando a configuração Easy-RSA em: ./vars usando SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 de maio de 2019 Você está prestes a assinar o seguinte certificado. Por favor, verifique os detalhes mostrados abaixo para obter precisão. Observe que este pedido não foi verificado criptograficamente. Certifique -se de que veio de uma fonte confiável ou que você verificou a soma de solicitação com o remetente. Solicite Assunto, a ser assinado como um certificado de servidor por 365 dias: sujeito = Commonname = Tecadmin-Server Digite a palavra 'sim' para continuar ou qualquer outra entrada para abortar. Confirmar detalhes da solicitação: Sim, usando a configuração de/etc/openvpn/easy-rsa/pki/safessl-easyrsa.CNF Enter Pass Phrase for/etc/OpenVPN/EAST-RSA/PKI/PRIVADO/CA.Chave: Verifique se a solicitação corresponde à assinatura da assinatura OK O nome distinto do sujeito é o seguinte CommonName: ASN.1 12: Certificado 'Tecadmin-Server' deve ser certificado até 16 de fevereiro 05:00:50 2021 GMT (365 dias) Escreva um banco de dados com 1 Certificado atualizado da Base de dados de novas entradas criada em:/etc/openvpn/easy-rsa/ PKI/emitido/Tecadmin-Server.Crt 

Em seguida, verifique o arquivo de certificado gerado com o seguinte comando:

OpenSSL Verifique -Cafile PKI/CA.CRT PKI/emitido/Tecadmin-Server.Crt 

Se estiver tudo bem, você deve obter a seguinte saída:

PKI/emitido/Tecadmin-Server.CRT: OK 

Em seguida, execute o comando a seguir para gerar uma forte chave Diffie-Hellman a ser usada para a troca-chave:

./Easyrsa Gen-DH 

Você deve obter a seguinte saída:

Nota: Usando a configuração Easy-RSA em: ./vars usando SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 de maio de 2019 Gerando parâmetros DH, 2048 bits Long Safe Prime, gerador 2 Isso vai levar muito tempo ...+…+…+… ++*++*++*++*DH Parâmetros do tamanho 2048 criados em/etc/openvpn/easy-rsa/pki/dh.PEM 

Depois de criar todos os arquivos de certificado, copie -os para o/etc/openvpn/server/diretório:

cp pki/ca.CRT/etc/openvpn/server/cp pki/dh.PEM/etc/openvpn/server/cp pki/privado/tecadmin-server.key/etc/openvpn/server/cp pki/emitido/tecadmin-server.CRT/etc/openvpn/server/ 

Etapa 6 - Gere certificado de cliente e arquivo -chave

Em seguida, você precisará gerar o arquivo de chave e certificado para o cliente.

Primeiro, execute o seguinte comando para construir o arquivo da chave do cliente:

./Easyrsa Gen-Req Client NoPass 

Você deve ver a seguinte saída:

Nota: Usando a configuração Easy-RSA em: ./vars usando SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 de maio de 2019 Gerando uma chave privada RSA… +++++… +++++ escrevendo nova chave privada para '/etc/openvpn/easy-rsa/pki/privado/cliente.chave.E38GUTZHIE '----- 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 comum (por exemplo: seu usuário, host ou nome do servidor) [Cliente]: Solicitação de Certificado e Solicitação de Certificado Concluído. Seus arquivos são: req:/etc/openvpn/easy-rsa/pki/reqs/cliente.Chave req:/etc/openvpn/easy-rsa/pki/privado/cliente.chave 

Em seguida, assine a chave do cliente usando seu certificado CA:

./Easyrsa Sign-Req Client 

Você deve obter a seguinte saída:

Nota: Usando a configuração Easy-RSA em: ./vars usando SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 de maio de 2019 Você está prestes a assinar o seguinte certificado. Por favor, verifique os detalhes mostrados abaixo para obter precisão. Observe que este pedido não foi verificado criptograficamente. Certifique -se de que veio de uma fonte confiável ou que você verificou a soma de solicitação com o remetente. Solicite Assunto, a ser assinado como um certificado de cliente por 365 dias: sujeito = Commonname = Client Digite a palavra 'sim' para continuar ou qualquer outra entrada para abortar. Confirmar detalhes da solicitação: Sim, usando a configuração de/etc/openvpn/easy-rsa/pki/safessl-easyrsa.CNF Enter Pass Phrase for/etc/OpenVPN/EAST-RSA/PKI/PRIVADO/CA.Chave: Verifique se a solicitação corresponde à assinatura da assinatura OK O nome distinto do sujeito é o seguinte CommonName: ASN.1 12: Certificado de 'Cliente' deve ser certificado até 16 de fevereiro 05:11:19 2021 GMT (365 dias) Escreva um banco de dados com 1 Certificado atualizado da New Data Base de dados criado em:/etc/openvpn/easy-rsa/pki/ emitido/cliente.Crt 

Em seguida, copie todo o certificado de cliente e arquivo -chave para o/etc/openvpn/client/diretório:

cp pki/ca.CRT/etc/openvpn/client/cp pki/emitido/cliente.CRT/etc/openvpn/client/cp pki/privado/cliente.chave/etc/openvpn/cliente/ 

Etapa 7 - Configurar servidor OpenVPN

Em seguida, crie um novo arquivo de configuração OpenVPN dentro/etc/openvpn/diretório:

nano/etc/openvpn/servidor.conf 

Adicione as seguintes linhas:

porta 1194 proto udp dev tun ca/etc/openvpn/server/ca.CRT CERT/etc/OpenVPN/Server/Tecadmin-Server.CRT KEY/etc/OpenVPN/Server/Tecadmin-Server.chave dh/etc/openvpn/server/dh.PEM Server 10.8.0.0 255.255.255.0 Push "Redirect-gateway def1" push "dhcp-option dns 208.67.222.222 "push" dhcp-option dns 208.67.220.220 "cifra duplicada cifra aes-256 cbc tls-version-min 1.2 TLS-CIPHER TLS-DHE-RSA-AS-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-256-CBC-SHA256: TLS-DHE-RSA-COM-AES-128-GCM- SHA256: TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 AUTH SHA512 AUTH-NOCACHENTE KEENVELIVE 20 60 60 PERSIST-TENHEIRA COMPRESSÃO PERSISTA LZ4 Usuário do Daemon Ninguém Grupo não.Verbo de log 3 

Salve o arquivo quando terminar.

Etapa 8 - Inicie o serviço OpenVPN

OpenVPN agora está instalado e configurado. Agora você pode iniciar o serviço OpenVPN e ativá -lo para iniciar após a reinicialização do sistema usando o seguinte comando:

SystemCTL START [Email Protected] SystemCtl Ativar [Email Protected] 

Execute o seguinte comando para verificar o status do serviço OpenVPN:

Status do SystemCTL [Protegido por email] 

Você deve obter a seguinte saída:

● [Email Protected]-OpenVPN Conexão com o servidor carregado: carregado (/lib/systemd/system/[email protegido]; ativado; predefinição do fornecedor: ativado) ativo: ativo (em execução) desde a sexta 2020-02-21 15:38: 31 UTC; 4s atrás Docs: Man: OpenVPN (8) https: // Comunidade.OpenVPN.net/openvpn/wiki/openvpn24manpage https: // Comunidade.OpenVPN.Net/OpenVPN/Wiki/Howto PID principal: 3044 (OpenVPN) Status: "Sequência de inicialização concluída" Tarefas: 1 (limite: 2359) Memória: 1.3M CGROUP: /Sistema.Fatia/System-OpenVPN.Slice/[Email Protected] └─3044/usr/sbin/Openvpn--daemon ovpn-server-status/run/openvpn/servidor.status 10 -cd/etc/openvpn - -config/etc/openvpn/servidor. 21 de fevereiro 15:38:31 Debian10 Systemd [1]: Iniciando a conexão OpenVPN com o servidor… 21 de fevereiro 15:38:31 Debian10 Systemd [1]: Iniciado a conexão OpenVPN ao servidor. 

Depois que o serviço OpenVPN começou com sucesso, ele criará uma nova interface de rede chamada TUN0. Você pode verificar com o seguinte comando:

ip um show tun0 

Você deve obter a nova interface TUN0 na seguinte saída:

59: TUN0: MTU 1500 Qdisc pfifo_fast State Unknown Group Padrão Qlen 100 Link/Nenhum Inet 10.8.0.1 ponto 10.8.0.2/32 SCOPE Global TUN TUN0 Valid_lft Forever preferred_lft para sempre 

Etapa 9 - Gere a configuração do cliente

Em seguida, crie um novo arquivo de configuração do cliente OpenVPN chamado cliente.Ovpn. Você precisará deste arquivo para conectar seu servidor OpenVPN do sistema cliente.

nano/etc/openvpn/cliente/cliente.Ovpn 

Adicione as seguintes linhas:

CLIENTE DEV TUN TUN PROTO UDP VPN-SERVER-IP 1194 CA CA.Cliente CRT CERT.Cliente CRT -chave.CIPHER AES-256-CBC AUTH SHA512 AUTH-NOCACHACH TLS-VERSION-MIN 1.2 TLS-CIPHER TLS-DHE-RSA-AS-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-256-CBC-SHA256: TLS-DHE-RSA-COM-AES-128-GCM- SHA256: TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 RESOLV-RECRIA INFINITA COMPRESSÃO LZ4 NOBIND PERSIST-TELHA TEMIS 

Salve o arquivo quando terminar.

Etapa 10 - Configure o roteamento usando UFW

Por padrão, o UFW Firewall não está instalado no Debian 10. Você pode instalá -lo com o seguinte comando:

instalação apt -get ufw -y 

Depois de instalar o Firewall do UFW, você precisará adicionar regras de firewall para permitir a disfarce para que seus clientes VPN acessem à Internet.

Primeiro, você precisará configurar o UFW para aceitar os pacotes encaminhados. Você pode fazer isso editando o arquivo/etc/default/ufw:

nano/etc/default/ufw 

Altere a seguinte linha:

Default_forward_policy = "aceitar" 

Salve e feche o arquivo. Então, abra o/etc/ufw/antes.Arquivo de regras:

nano/etc/ufw/antes.regras 

Adicione as seguintes linhas no final do arquivo:

*NAT: Postrouting aceita [0: 0] -A Postrouting -s 10.8.0.0/16 -O Ens3 -j Masquerade Commit 

Salve o arquivo quando terminar.

Nota: Substitua o ENS3 pelo nome da sua interface de rede pública.

Em seguida, permita a porta 1194 do OpenVPN padrão e o OpenSSH com o seguinte comando:

UFW permite 1194/udp ufw permitir o OpenSsh 

Em seguida, recarregue o firewall do UFW usando o seguinte comando:

ufw desativar ufw habilitar 

Etapa 11 - Conecte o OpenVPN do cliente

Primeiro, faça login na máquina cliente e instale o pacote OpenVPN com o seguinte comando:

instalação apt -get OpenVPN -y 

Em seguida, você precisará baixar os arquivos de configuração do cliente OpenVPN do servidor OpenVPN para a máquina cliente.

Na máquina cliente, execute o seguinte comando para baixar todo o arquivo de configuração do cliente:

scp -r [email protegido]:/etc/openvpn/cliente . 

Depois de baixado, altere o diretório para o cliente e execute o seguinte comando para conectar -se ao servidor OpenVPN:

CD Client OpenVPN -Config Client.Ovpn 

Você deve ver a seguinte saída:

FRI 21 de fevereiro 15:39:18 2020 TCP/UDP: Preservando o endereço remoto usado recentemente: [AF_INET] 69.87.218.145: 1194 Fri 21 de fevereiro 15:39:18 2020 Buffers de soquete: r = [212992-> 212992] s = [212992-> 212992] FRI 21 FEB 21 15:39:18 2020 Link UDP Remote: [AF_INET] 69.87.218.145: 1194 Sex 21 de fevereiro 15:39:18 2020 TLS: pacote inicial de [af_inet] 69.87.218.145: 1194, SID = 6d27E1CB 524BD8CD FRI 21 FEB 15:39:18 2020 Verifique ok: profundidade = 1, cn = easy-rsa ca Fri 21 15:39:18 2020 Verifique se ok: profundidade = 0, CN = Tecadmin- servidor sex 21 de fevereiro 15:39:18 2020 Canal de controle: TLSV1.3, cifra tlsv1.3 TLS_AES_256_GCM_SHA384, 2048 BIT RSA FRI 21 FEB 15:39:18 2020 [Tecadmin-Server] Conexão de pares iniciada com [AF_INET] 69.87.218.145: 1194 Fri 21 de fevereiro 15:39:19 2020 Enviado Controle [Tecadmin-Server]: 'push_request' (status = 1) sex, 21 de fevereiro 15:39:19 2020 Push: Mensagem de controle recebeu: 'Push_reply, Redirect-Gateway Def1 , DNS da opção DHCP 208.67.222.222, DNS de opção DHCP 208.67.220.220, Rota 10.8.0.1, Topology Net30, Ping 20, Ping-Restart 60, ifconfig 10.8.0.6 10.8.0.5, Peer-Id 0, Cifra AES-256-GCM 'FRI 21 FEB 15:39:19 2020 Opções Importação: Timers e/ou Tempo limite Fr. Fr 

Após uma conexão bem -sucedida, o OpenVPN atribuirá um endereço IP ao seu sistema. Você pode verificar com o seguinte comando:

ip um show tun0 

Saída:

4: TUN0: MTU 1500 QDISC FQ_Codel State Grupo Desconhecido Padrão Qlen 100 Link/Nenhum Inet 10.8.0.6 pares 10.8.0.5/32 SCOPE Global TUN TUN0 Valid_lft Forever preferred_lft para sempre 

Você também pode verificar o log do servidor OpenVPN para verificar o status da conexão:

Tail -f/var/log/OpenVPN.registro 

Você deve ver a seguinte saída:

Fri 21 de fevereiro 15:39:18 2020 45.58.34.83: 37445 Canal de controle: TLSV1.3, cifra tlsv1.3 TLS_AES_256_GCM_SHA384, 2048 BIT RSA FRI 21 FEB 15:39:18 2020 45.58.34.83: 37445 [Cliente] Conexão de pares iniciada com [AF_INET] 45.58.34.83: 37445 Sex 21 de fevereiro 15:39:18 2020 Cliente/45.58.34.83: 37445 multi_sva: pool retornou ipv4 = 10.8.0.6, IPv6 = (não ativado) sexta -feira, 21 de fevereiro 15:39:18 2020 Cliente/45.58.34.83: 37445 Multi: Aprenda: 10.8.0.6 -> Cliente/45.58.34.83: 37445 Sex 21 de fevereiro 15:39:18 2020 Cliente/45.58.34.83: 37445 Multi: IP virtual primário para cliente/45.58.34.83: 37445: 10.8.0.6 sex, 21 de fevereiro 15:39:19 2020 Cliente/45.58.34.83: 37445 Push: Mensagem de controle recebida: 'push_request' sex 21 de fevereiro 15:39:19 2020 Client/45.58.34.83: 37445 Enviou o controle [cliente]: 'push_reply, redirect-gateway def1, dhcp-opção dns 208.67.222.222, DNS de opção DHCP 208.67.220.220, Rota 10.8.0.1, Topology Net30, Ping 20, Ping-Restart 60, ifconfig 10.8.0.6 10.8.0.5, Peer-Id 0, Cifra AES-256-GCM '(Status = 1) Fri 21 de fevereiro 15:39:19 2020 Cliente/45.58.34.83: 37445 Canal de dados: Usando a Cifra Negociada 'AES-256-GCM' sex 21 de fevereiro 15:39:19 2020 Cliente/45.58.34.83: 37445 Canal de dados de saída: Cifra 'AES-256-GCM' inicializada com chave de 256 bits sex de 21 de fevereiro 15:39:19 2020 Cliente/45.58.34.83: 37445 canal de dados de entrada: cifra 'aes-256-gcm' inicializada com chave de 256 bits 

Conclusão

Parabéns! Você instalou e configurou com sucesso o servidor OpenVPN e o cliente no Debian 10 Server. Agora você pode acessar a Internet com segurança e proteger sua identidade.