O OpenVPN é uma implementação aberta de uma das tecnologias de VPN, projetada para organizar redes privadas virtuais seguras entre redes locais geograficamente remotas, bem como entre clientes individuais. A segurança do túnel é fornecida pela criptografia usando o OpenSSL.
Como o OpenVPN funciona?
Após a conclusão da configuração do servidor e de seu lançamento, ele entrará no modo de espera para receber e redirecionar conexões SSL seguras externas para o adaptador de rede virtual (tun/tap).
Opcionalmente, o roteamento do servidor pode ser configurado de modo que o tráfego de Internet do cliente passe pelo servidor e se torne tráfego do servidor. Nesse caso, o OpenVPN executará o tráfego de proxy.
O que é necessário do sistema operacional?
Antes de instalar o OpenVPN, você precisa se certificar de que os parâmetros básicos estejam corretos.
- O servidor tem pelo menos um endereço IP estático "branco". Esses. O servidor deve estar acessível pela Internet. Se o endereço for dinâmico, mas o servidor permanecer acessível a partir da rede global, use os serviços DynDNS.
- Permissão para baixar e instalar pacotes de repositórios oficiais. Para verificar, execute cat /tc/apt/sources.list. As linhas com instruções dos repositórios devem ser descomentadas (não deve haver nenhum sinal "#" no início da linha).
- Os parâmetros de rede devem ser especificados corretamente - nome do host, parâmetros dos servidores DNS.
Como chegar à instalação.
Todas as etapas de instalação serão executadas pelo usuário root.
- Atualização das informações do repositório:
- Instalar as atualizações atuais do sistema e os programas instalados:
- Instalar o OpenVPN:
Importante. Nos repositórios básicos, a versão mais recente de um pacote geralmente está ausente. Os desenvolvedores do OpenVPN mantêm seu repositório, como configurá-lo pode ser encontrado no site oficial do.
- Instale o pacote easy-rsa da mesma forma:
Passos pós-instalação
Colocamos os scripts do easy-rsa:
Preparamos as chaves públicas (PKI - Public Key Infrastructure):
- Vá para o diretório / etc / openvpn / easy-rsa:
- Criando um link simbólico para o arquivo de configuração openssl:
- Inicializamos o script vars:
O sistema informará: OBSERVAÇÃO: Se você executar ./clean-all, estarei fazendo um rm -rf em / etc / openvpn / easy-rsa / keys
- Executamos o ./clean-all
- Para criar uma autoridade de certificação, execute o script:
No decorrer de seu trabalho, o programa fará várias perguntas. Elas devem ser respondidas em letras latinas. Se você não preencher algum campo, o programa substituirá os valores padrão, geralmente indicados entre parênteses.
Criar a chave do servidor
Para criar a chave do servidor, execute o comando:
Deve-se observar que o processo é semelhante à geração de um certificado de uma autoridade de certificação; no entanto, antes de assinar o certificado, o programa fará duas perguntas de esclarecimento. Se tudo estiver correto, responda "y".
Geração de chaves de cliente
Da mesma forma que a geração de chaves de servidor, as chaves de cliente também são criadas:
Deve-se observar que o client1.key criado não tem uma senha nem proteção criptográfica. Isso pode fazer com que qualquer usuário que tenha tomado posse do arquivo possa tentar se conectar ao servidor. Se essa ameaça existir, é melhor gerar chaves com outro script:
O script solicitará uma frase secreta logo no início. Além disso, o processo não é diferente da geração de chaves do servidor e de um cliente simples.
Lembre-se de que os nomes das chaves devem ser exclusivos. Um usuário - uma chave com um nome exclusivo.
Acontece que, no decorrer da operação do servidor, após algum tempo, é necessário criar um ou mais certificados. Para fazer isso, você precisará reinicializar o script vars e só então iniciar o processo de geração de chaves:
SUPORTE DO LOCAL DO BLOCO DE CÓDIGO_14
Geração de chaves Diffie-Hellman
Graças ao protocolo Diffie-Hellman, duas ou mais partes podem receber uma chave secreta, o que permitirá a criação de um canal de comunicação seguro. As chaves são geradas pelo comando:
O resultado será algo parecido com isto.
Quando o programa for concluído, o arquivo dh2048.pem aparecerá no diretório /etc/openvpn/easy-rsa/keys/
Movendo certificados e chaves
Servidor
Chaves e certificados criados. É hora de distribuí-los aos usuários e copiar as chaves do servidor para os diretórios apropriados no servidor.
- Acesse o diretório com as chaves:
- Copiamos apenas os arquivos necessários para o servidor:
É importante entender que os arquivos acima são a base da operação e da segurança do servidor VPN. A perda ou a substituição desses arquivos pode ter consequências extremamente negativas. É importante armazená-los em um local seguro e não transmiti-los por canais de comunicação abertos.
Clientes
O cliente precisará de apenas 3 arquivos ca.crt, client1.crt, client1.key. Cada cliente precisa fornecer apenas suas chaves. Esses arquivos podem ser colocados no diretório / etc / openvpn no computador do cliente se ele estiver executando um sistema operacional semelhante ao Linux.
No Windows, eles devem ser colocados no diretório do usuário.
Configuração do servidor e do cliente
Servidor
A maioria dos programas instalados no Linux tem os chamados arquivos de amostra. Esses arquivos contêm exemplos de configuração e explicações sobre eles. O OpenVPN não foi exceção. Descompacte o arquivo de configuração do servidor no diretório / etc / openvpn:
O servidor está pronto para trabalhar com o arquivo recebido. Ele está configurado com a possibilidade de tunelamento, mas não pode fazer proxy, ou seja, enviar o tráfego do cliente em seu nome. Corrija isso.
Primeiro, verifique quais arquivos estão no diretório / etc / openvpn:
Abra o arquivo de configuração:
E verificamos a conformidade dos arquivos prescritos na configuração com os arquivos no diretório. Linhas interessantes após " Certificado raiz SSL/TLS (ca), certificado (cert) e chave privada (key)."
Se os nomes forem diferentes dos existentes, as correções necessárias deverão ser feitas. Saia do editor pressionando Ctrl + X.
Iniciamos o servidor:
Verificar o resultado do lançamento:
Configurações do cliente.
Supõe-se que o pacote OpenVPN já esteja instalado no lado do cliente.
- Copie o arquivo de configurações do cliente para o diretório inicial do usuário:
- Copie as chaves geradas - client1.key, client1.crt, ca.crt:
- Editar o arquivo de configuração do cliente:
- Encontramos as linhas comentadas "# O nome do host/IP e a porta do servidor". Para o parâmetro remoto, altere my-server-1 para o endereço IP do servidor ou seu nome de domínio.
- No mesmo arquivo, abaixo, encontramos o bloco "# SSL / TLS parms.". Edição de nomes de chaves.
- Saímos da edição com a combinação Ctrl + X. Respondemos "Y" à pergunta sobre como salvar as alterações. O nome do arquivo é mantido inalterado.
- Transfira os arquivos client1.key, client1.crt, ca.crt e client.conf para o computador cliente a partir do qual será feita a conexão com o servidor OpenVPN.
Importante! Algumas implementações de cliente do OpenVPN só funcionam com arquivos * .ovpn. Nesses casos, basta alterar a extensão do arquivo (renomear) de client.conf para client.ovpn.
- Nós nos conectamos ao servidor com o comando:
Deve-se observar que o proxy ainda não está configurado. Ao mesmo tempo, quando a máquina cliente está conectada ao servidor OpenVPN, o acesso à Internet é encerrado. Isso ocorre porque o adaptador TUN criado e, no lugar dele, o próprio servidor, é o gateway padrão.
Configuração do roteamento.
- No servidor, edite o arquivo server.conf:
- Encontramos a seguinte linha no arquivo e excluímos o símbolo ";" na frente dela, descomentando-a:
- Salve e feche o editor.
- Editando o arquivo /etc/sysctl:
- No final do arquivo, adicione a seguinte linha:
Isso permitirá que o sistema encaminhe o tráfego entre as interfaces, mas as alterações só terão efeito após uma reinicialização. Salve o arquivo e feche o editor.
- Permitir o encaminhamento de pacotes sem reiniciar o servidor:
- Configurar o NAT no iptables. Digitamos os comandos um a um:
__TITULAR DO LUGAR DO BLOCO DE CÓDIGO_36__
__TITULAR DO LUGAR DO BLOCO DE CÓDIGO_37__
__TITULAR DO LUGAR DO BLOCO DE CÓDIGO_38__
__TITULAR DO LUGAR DO BLOCO DE CÓDIGO_39__
__TITULAR DO LUGAR DO BLOCO DE CÓDIGO_40__
Você também pode simplesmente inseri-los no arquivo /etc/rc.local até a linha "exit 0" ou configurar o firewall.
O servidor está pronto para ser usado. No entanto, a tarefa é fazer proxy de todo o tráfego e, portanto, é necessário configurar o encaminhamento de consultas de DNS. Personalizar.
- Instalar o dnsmasq
Se a instalação for realizada em um sistema operacional Ubuntu:
Embora na maioria das versões modernas do sistema operacional Ubuntu o dnsmasq já esteja pré-instalado, nas versões mais antigas você deve fazer isso:
A caixa de diálogo do assistente de instalação pode ser iniciada. Ela conterá duas perguntas. No primeiro caso, a pergunta "prepare /etc/resolv.conf for dynamic updates" é respondida com "Yes" e, no seguinte, "Append original file to dynamic file?" responde "No".
Para o sistema operacional Debian 7:
- Edite o arquivo de configurações do dnsmasq:
Adicione os seguintes parâmetros:
Salve o arquivo e feche o editor.
- Edição do arquivo de configurações de rede:
É necessário especificar o endereço dos servidores DNS nas seções correspondentes das configurações do adaptador:
Talvez essa ação já tenha sido executada. Não é necessário executá-la novamente.
- Considerando a peculiaridade da inicialização do dnsmasq e da operação subsequente - a possibilidade de travamento antes da inicialização do adaptador de túnel virtual, adicione a seguinte linha ao arquivo rc.local, antes de "exit 0":
- Agora, permita que os clientes do servidor OpenVPN usem o DNS. Usando o editor nano, descomente a linha:
Corrigimos as alterações no arquivo.
- Reinicie o servidor:
Verificação da operação
Estamos nos reconectando ao servidor. Estamos tentando abrir um site para verificar o endereço IP. O resultado deve ser o endereço IP do servidor.