Tutorial para configurar servidores VPN no Ubuntu. A maneira mais fácil de configurar o Ubuntu como um servidor VPN. Configurando uma autoridade de certificação

If ($answer_counter == 1): ?> endif; ?>

ATUALIZAR. Quanto ao Sierra, o macOS não suporta mais vpn PPTP. Esta resposta não é válida para clientes macOS Sierra e outros.

PPTP sobre PoPToP é fácil

  1. apt-get instala pptpd
  2. edite /etc/pptpd.conf e defina a opção remoteip para um valor em sua rede que NÃO seja servido por seu servidor DHCP.
  3. edite /etc/ppp/chap-secrets e adicione nome de usuário e senha

por exemplo.

vpnuser pptpd vpnpassword*

Isso é tudo o que é preciso para instalar o pptp. Agora teste-o com seu cliente OS X.

Respondido por Jay _silly_evarlast_ Wren em 04/06/2012 às 23:24

AVISO: PPTP É UM PROTOCOLO INSEGURO! Não apenas a criptografia foi violada, mas ela envia sua autenticação em texto não criptografado e é facilmente interceptada. Estimou-se que a quantidade de tempo necessária para forçar a senha com força bruta é aproximadamente equivalente ao tempo necessário para forçar uma única chave DES com força bruta. Considere usar OpenVPN ou outra arquitetura VPN em vez de PPTP!

Respondido por Qasim em 10/06/2013 às 16:09

As outras respostas neste tópico foram apenas respostas parciais no meu caso. Aqui está o que funcionou para mim no Ubuntu 12.04.3

sudo apt-get install pptpd

Adicione o seguinte ao /etc/pptpd.conf: (O endereço IP não importa, estes são apenas os endereços IP para sua interface ppp0.)

localip 10.0.0.1 remoteip 10.0.0.100-200

Adicione servidores DNS a /etc/ppp/pptpd-options

ms-dns 8.8.8.8 ms-dns 8.8.4.4

Ativar encaminhamento de endereço IP

sudo vim /etc/sysctl.conf

Descomente esta linha

sudo sysctl -p /etc/sysctl.conf

Edite /etc/ppp/chap-secrets, adicione o usuário VPN neste formato:

# Segredos para autenticação usando CHAP # cliente servidor secreto endereços IP nome de usuário pptpd supersecretpassword *

Reiniciar PPTP

Reinicialização do pptpd do serviço

Execute ifconfig e encontre sua interface padrão, no meu caso foi br0(Alterei para permitir que as VMs em minha máquina física compartilhem a interface. Provavelmente será en0)

backup do iptables

iptables-save > ~/iptables.save

Agora faça com que as alterações do iptables usem sua interface padrão conforme mostrado por ifconfig.

Configurando uma conexão VPN no Debian

Aqui está um exemplo de configuração de uma conexão VPN para Debian Linux através da linha de comando. Mas não será menos útil para proprietários de distribuições baseadas no Debian, por exemplo, Ubuntu.

  1. Primeiro você precisa do pacote pptp:
    # apt-get install pptp-linux
  2. Edite (ou crie, se não existir) o arquivo /etc/ppp/options.pptp. Deve conter os seguintes parâmetros:
    trancar
    noauth
    nobsdcomp
    nodeflate
  3. Em seguida, você precisa adicionar uma linha como esta ao arquivo /etc/ppp/chap-secrets:
    “nome de usuário” PPTP “senha” *
  4. Crie um arquivo /etc/ppp/peers/XXX (XXX é o nome da rede). Digite o seguinte nele:
    pty "pptp vpn.XXX.ru --nolaunchpppd"
    nome "nome de usuário"
    nome remoto PPTP
    arquivo /etc/ppp/options.pptp
    Rota Padrão
    “username” e “password” devem ser substituídos por seu nome de usuário e senha sem aspas, conforme especificado em seu contrato. vpn.XXX.ru - endereço do servidor vpn - pergunte ao seu provedor.
  5. Para substituir automaticamente a rota padrão, crie o arquivo /etc/ppp/ip-up.d/routes-up:
    # su touch /etc/ppp/ip-up.d/routes-up
    # su chown a+x /etc/ppp/ip-up.d/routes-up

    E digite o seguinte nele:
    #!/bin/sh
    /sbin/route del default
    /sbin/route adiciona o dev padrão ppp0
    Crie o arquivo /etc/ppp/ip-down.d/routes-down:
    # su touch /etc/ppp/ip-down.d/routes-down
    # su chown a+x /etc/ppp/ip-down.d/routes-down
    E digite o seguinte nele:
    #!/bin/sh
    /sbin/route del default
    /sbin/route adiciona padrão dev eth0

  6. Agora você pode se conectar com o comando:
    # su XXX
    Para obter informações detalhadas sobre o processo de conexão, digite:
    # su pon XXX debug dump logfd 2 nodetach
    Você pode verificar se está conectado à VPN digitando o comando ifconfig. Se sua saída contiver a seção ppp0, você estará conectado e poderá começar a trabalhar com a Internet. Para desabilitar, pressione ctrl+c ou digite:
    #supoff XXX
  7. Para que seu computador receba rotas do nosso servidor, as seguintes linhas devem estar presentes no arquivo /etc/dhcp3/dhclient.conf:
    #
    opção rfc3442-classless-static-routes código 121 = array de inteiro sem sinal 8;
    opção ms-classless-static-routes código 249 = array de inteiro sem sinal 8;
    #
    solicitação de máscara de sub-rede, endereço de transmissão, deslocamento de tempo, roteadores, nome de domínio, servidores de nome de domínio, pesquisa de domínio, nome de host, servidores de nome de bios, escopo de netbios, interface-mtu, rota estática , rfc3442-classless-static-routes, ms-classless-static-routes;
    #
  8. Para se conectar automaticamente à Internet quando o sistema operacional inicializar, crie o arquivo /etc/init.d/XXX
    # touch /etc/init.d/XXX
    # su chown a+x /etc/init.d/XXX
    # su ln -s /etc/init.d/XXX /etc/rc2.d/S99XXX
    Vamos escrever da seguinte forma:
    #!/bin/sh
    su /usr/bin/ponXXX

Em todos os comandos, XXX é o nome da sua rede.

Uma verdadeira rede virtual privada ou Virtual Private Network (VPN) é um túnel conectado criptografado entre duas redes que conecta dois pontos confiáveis. Este não é o protocolo web HTTPS, que considera todos os clientes confiáveis. Somente os clientes que possuem chaves de acesso especiais podem se conectar à VPN.

O conceito de VPN tornou-se muito esticado nos dias de hoje, com o advento de redes virtuais privadas que confiam em todos e a disseminação do HTTPS. Muitas das VPNs são soluções comerciais com configuração mínima para permitir que os funcionários acessem remotamente. Mas nem todos confiam nessas decisões. Uma rede virtual privada conecta duas redes em uma, como uma rede de escritório e a rede doméstica de um funcionário. O servidor VPN é necessário para que o servidor e o cliente possam se autenticar um com o outro.

Configurar a autenticação de servidor e cliente requer muito trabalho e, portanto, soluções comerciais com um mínimo de configurações perdem nesse aspecto. Mas na verdade não é tão difícil configurar um servidor OpenVPN. Você precisará de dois nós em redes diferentes para configurar um ambiente de teste, por exemplo, você pode usar várias máquinas virtuais ou servidores reais. Como você já entendeu, este artigo abordará a configuração do OpenVPN no Ubuntu para criar uma rede virtual privada completa.

Ambas as máquinas devem ter o OpenVPN instalado, é um programa bastante popular, então você pode instalá-lo a partir dos repositórios oficiais. Também precisamos do Easy-RSA para trabalhar com chaves secretas. Para instalar programas no Ubuntu, use o seguinte comando:

sudo apt install openvpn easy-rsa

Ambos os pacotes devem ser instalados no servidor e no cliente. Eles serão necessários para configurar o programa. A primeira etapa do artigo instalando e configurando o openvpn está concluída.

Configurando uma autoridade de certificação

A primeira coisa a fazer é configurar uma infraestrutura de chave pública adequada no servidor. Consideramos o servidor como a máquina à qual os usuários se conectarão. Ter sua própria CA tem várias vantagens, você terá sua própria CA, o que facilita a distribuição e o gerenciamento de chaves. Por exemplo, você pode revogar certificados de cliente no servidor. Além disso, agora não é necessário armazenar todos os certificados do cliente, bastará que a autoridade de certificação saiba que o certificado é assinado pela CA. Além de um sistema de chaves complexo, você pode usar chaves estáticas se quiser conceder acesso apenas a alguns usuários.

Observe que todas as chaves secretas devem estar em um local seguro. No OpenVPN, a chave pública é chamada de certificado e possui uma extensão .crt, e a chave privada é chamada de chave, sua extensão é .key.

Primeiro, crie uma pasta para armazenar os certificados Easy-RSA. Na verdade, a configuração do OpenVPN é feita manualmente, então a pasta pode ser colocada em qualquer lugar:

sudo mkdir /etc/openvpn/easy-rsa

Em seguida, copie todos os scripts easy-rsa necessários para esta pasta:

cd /etc/openvpn/easy-rsa/

sudo -i
# fonte ./vars
# ./limpar tudo
# ./build-ca

Com o primeiro comando mudamos para o console em nome do superusuário, com o segundo carregamos as variáveis ​​de ambiente do arquivo ./vars. O comando ./clear-all cria a pasta keys se ela não existir e limpa seu conteúdo. E o último comando inicializa nossa autoridade de certificação. Agora todas as chaves necessárias apareceram na pasta .keys:

Configurando certificados de cliente

sudo cp -R /usr/share/easy-rsa /etc/openvpn/

Agora precisamos copiar o certificado, um arquivo .crt, para a pasta /etc/openvpn em todos os clientes. Por exemplo, vamos baixar este arquivo para nosso cliente usando scp:

sudo scp user@host: /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys

Só agora você pode criar sua chave privada com base no certificado CA:

cd /etc/openvpn/easy-rsa/

sudo -i
# fonte ./vars
# build-req Sergiy

Observe que ca.crt deve estar na pasta keys, caso contrário nada funcionará. Agora, o utilitário criará uma chave, com base na qual você pode se conectar ao servidor OpenVPN, mas ainda precisará assiná-la no servidor. Envie o arquivo .csr resultante para o servidor usando o mesmo scp:

scp /etc/openvpn/easy-rsa/keys/Sergiy.csr user@host:~/

Então, no servidor na pasta /etc/openvpn/easy-rsa, você precisa executar o comando de assinatura de certificado:

./sign-req ~/Sergiy

A assinatura do certificado deve ser verificada. Em seguida, o programa informará que foi assinado e adicionado ao banco de dados. Um arquivo .crt aparecerá na pasta com o certificado csr, que deve ser devolvido à máquina cliente:

sudo scp user@host:/home/Sergiy.crt /etc/openvpn/easy-rsa/keys

Só depois disso o servidor e o cliente têm todas as chaves necessárias para se conectar e estabelecer comunicação. Restam mais algumas configurações. Se você planeja usar a criptografia TLS, precisa criar um conjunto de dados Diffie-Huffman no servidor, para isso use o comando:

Configurando o OpenVPN

Agora configurando o servidor OpenVPN. Por padrão, não há nada na pasta de arquivos de configuração do OpenVPN. Você precisa criá-los você mesmo, dependendo do que planeja configurar, servidor ou cliente. O arquivo de configuração OpenVPN necessário pode ser encontrado em /usr/share/doc/openvpn/examples/sample-config-files/. Primeiro, vamos criar um arquivo de configuração para o servidor:

zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Aqui você precisa ajustar algumas configurações:

porta e proto- porta e protocolo em que o programa funcionará;

porta 1194
proto udp

Todas as chaves criadas devem ser registradas no arquivo de configuração. Nossas chaves são armazenadas em /etc/openvpn/easy-rsa/keys:


cert /etc/openvpn/easy-rsa/keys/ca.crt
key /etc/openvpn/easy-rsa/keys/ca.key
dh /etc/openvpn/easy-rsa/keys/dh.pem

Configuramos um intervalo de endereços para a rede virtual, nosso servidor estará disponível no primeiro deles - 10.8.0.1:

servidor 10.8.0.0 255.255.255.0

Após concluir a configuração, salve as alterações no arquivo, você mesmo pode colar toda essa configuração ou editar o arquivo com um exemplo. Configurações do servidor de trabalho pronto:

porta 1194
proto udp
comp lzo
música de desenvolvedor
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/ca.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
topologia de sub-rede
servidor 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

Você pode criar vários arquivos de configuração do cliente para se conectar a diferentes servidores. Abra o arquivo de configuração e altere os seguintes parâmetros nele:

controlo remotoé o endereço do seu servidor OpenVPN, o endereço e a porta devem corresponder aos configurados no servidor, por exemplo:

remoto 194.67.215.125 1194

ca- a chave que você recebeu da autoridade de certificação, nós a localizamos na pasta /etc/openvpn/.

certificado e chave- estas são as chaves pública e privada do cliente, com a ajuda delas você se conectará ao servidor. Como você lembra, nós os salvamos na pasta /etc/openvpn/easy-rsa/keys/.

ca /etc/openvpn/easy-rsa/keys/ca.crt

As demais configurações podem ser deixadas como estão. Aqui está o arquivo de configuração completo, que você pode copiar:

cliente
música de desenvolvedor
proto udp
remoto 194.67.215.125 1194
resolv-retry infinito
sem vínculo
chave de persistência
persist-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/Sergiy.crt
key /etc/openvpn/easy-rsa/keys/Sergiy.key
tls-auth ta.key 1
comp lzo
verbo 3

Salve as configurações, o cliente agora está pronto para se conectar. Observe que os arquivos de configuração devem corresponder o máximo possível, a ausência de determinadas opções em um dos arquivos pode levar a erros. Isso não significa que os arquivos serão idênticos, mas os parâmetros básicos do openvpn devem ser os mesmos. Tudo o que você precisa fazer é executar o OpenVPN nesta máquina usando este arquivo de configuração:

openvpn /etc/openvpn/client.conf

Pronto, agora tudo funciona, se você executar o ifconfig, verá que a interface tun0 foi adicionada:

Você também pode tentar pingar o endereço 10.8.0.1, este é o endereço que configuramos para nosso servidor OpenVPN, os pacotes de ping serão enviados normalmente. Caso os pacotes não estejam chegando, ou algo mais não esteja funcionando, preste atenção na saída de ambos os programas, pode haver alguns erros ou avisos, verifique também se o firewall do servidor permite acesso de fora via udp na porta 1194. Você pode também inicie o servidor ou cliente definindo o nível de verbosidade para o verbo máximo 9 na configuração. Muitas vezes isso ajuda a entender por que algo não está funcionando. Mas você ainda não pode direcionar o tráfego pelo túnel. Para fazer isso, você precisa habilitar o encaminhamento e adicionar algumas regras do iptables. Primeiro, permitimos o trânsito de pacotes no servidor:

sysctl -w net.ipv4.ip_forward=1

Em seguida, adicione essas regras. Permitimos que todos se conectem ao nosso servidor:

iptables -A INPUT -p udp --dport 1194 -j ACCEPT

Permitimos que os usuários do OpenVPN acessem a Internet:

iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT
# iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

conclusões

Neste artigo, vimos como o OpenVPN Ubuntu é instalado e configurado, bem como configurar o openvpn para trabalhar com autenticação de chave. A organização de redes virtuais privadas pode ser muito útil não apenas em organizações, mas também, digamos, para troca de dados entre seus dois computadores ou para aumentar a segurança da rede.

Instrução

Verifique se existe suporte a PPP no kernel do seu sistema operacional. A maneira mais fácil de fazer isso é observar os valores das opções prefixadas com CONFIG_PPP no arquivo de configuração atual do kernel. Geralmente é instalado no diretório /boot e tem um nome que começa com config. Descubra o nome deste arquivo com o comando
ls /boot
ou
ls /boot | grep conf
Imprima as linhas desejadas com o comando cat, filtrando com grep. Por exemplo:
cat /boot/config-2.6.30-std-def-alt15 | grep PPP
Analisar linhas contendo opções CONFIG_PPP, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY. Se não houver nenhum caractere # na frente deles, o suporte para a funcionalidade correspondente está disponível (para valores de m - na forma de um módulo externo, para valores de y - incluídos no kernel).

Verifique se o software cliente para estabelecer conexões VPN está instalado no sistema. O pacote necessário geralmente tem um nome que começa com pptp. Use apt-cache com a opção search para procurar o pacote necessário nos repositórios disponíveis e rpm com a opção -qa para verificar se o pacote está instalado. Ao trabalhar em um ambiente gráfico, pode fazer sentido usar programas como o synaptic.

Instale o software ausente. Use gerenciadores de pacotes adequados (apt-get, rpm no console, synaptic no ambiente gráfico, etc.). Se você instalou o pacote ppp com módulos do kernel para suportar o protocolo apropriado, reinicie o computador.

Tente configurar a VPN usando scripts de configuração como pptp-command ou pptpsetup. Eles geralmente são empacotados com software cliente para estabelecer conexões VPN. Para obter ajuda sobre os parâmetros de linha de comando desses utilitários, execute-os com a opção --help. Por exemplo:
pptpsetup --help
Se os scripts de configuração não tiverem sido instalados, passe para a próxima etapa para configurar manualmente a VPN.

Crie um diretório /etc/ppp e nele um arquivo chamado chap-secrets. Abra o arquivo em um editor de texto. Adicione uma linha como esta a ele:
SENHA DO SERVIDOR DE LOGIN *
Os valores de LOGIN e SENHA são o nome de usuário e a senha. Eles devem ser fornecidos pelo provedor de serviços de acesso VPN. Em vez de SERVER, especifique um nome de conexão arbitrário ou *.

Crie o diretório /etc/ppp/peers. Crie um arquivo nele que tenha o mesmo nome que o valor SERVER da etapa anterior (ou um nome arbitrário se * foi especificado). Edite este arquivo para adicionar informações como:
pty "servidor pptp --nolaunchpppd"
nome LOGIN
ipparam SERVIDOR
nome remoto SERVIDOR
trancar
noauth
nodeflate
nobsdcomp
Os valores de LOGIN e SERVER aqui são os mesmos da etapa 5. Isso conclui a configuração da VPN no Linux.

Você deseja ter acesso seguro à Internet a partir de seu smartphone ou laptop quando conectado a uma rede insegura via WiFi de hotel ou café? Uma Rede Privada Virtual (VPN) permite que você use redes não seguras como se estivesse em uma rede privada. Todo o seu tráfego neste caso passa pelo servidor VPN.

Em combinação com o uso de uma conexão HTTPS, as configurações descritas abaixo permitirão que você proteja suas informações privadas, como logins e senhas, bem como suas compras. Além disso, você pode contornar restrições e censuras regionais, bem como ocultar sua localização e tráfego HTTP não criptografado de uma rede insegura.

Você pode transferir um perfil do seu computador para o seu telefone conectando seu dispositivo Android ao seu computador via USB e copiando o arquivo. Você também pode mover o arquivo de perfil usando o cartão SD copiando o perfil para o cartão e inserindo o cartão no dispositivo Android.

Inicie o aplicativo OpenVPN e clique no menu para importar um perfil.

Composto

Para estabelecer uma conexão, pressione o botão Conectar. Você será perguntado se confia no aplicativo OpenVPN. Responder OK para estabelecer uma conexão. Para interromper a conexão, acesse o aplicativo OpenVPN e selecione desconectar.

Etapa 13Testar a conexão VPN

Depois que tudo estiver instalado e configurado, verifique se tudo está funcionando corretamente. Sem estabelecer uma conexão VPN, abra um navegador e vá para DNSLeakTest.

Este site retornará o endereço IP atribuído a você pelo seu ISP. Para verificar quais servidores DNS estão em uso, clique em teste estendido.

Agora estabeleça uma conexão usando seu cliente VPN e atualize a página em seu navegador. O endereço IP fornecido a você deve ser completamente diferente. Agora você usa esse novo endereço IP para todos na Internet. Clique teste estendido novamente para verificar suas configurações de DNS e verifique se você está usando o servidor DNS da sua VPN.

Etapa 14: Revogar certificados de cliente

De tempos em tempos, pode ser necessário revogar o certificado do cliente para impedir o acesso ao servidor VPN

Para fazer isso, vá para o diretório da autoridade de certificação e digite os comandos:

  • cd ~/openvpn-ca
  • fonte vars
  • ./revoke-full client3

A saída deste comando terminará com o erro 23. Isso é normal. Como resultado do trabalho, será criado o arquivo crl.pem no diretório de chaves com as informações necessárias para a revogação do certificado.

Mova este arquivo para o diretório /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

Adicione crl-verify ao final do arquivo. O servidor OpenVPN verificará a CRL toda vez que alguém estabelecer uma conexão com o servidor.

/etc/openvpn/server.conf

crl-verify crl.pem

Salve e feche o arquivo.

Reinicie o OpenVPN para concluir o processo de revogação do certificado:

Agora o cliente não poderá se conectar ao servidor OpenVPN usando o certificado antigo.

Para revogar certificados adicionais, conclua as seguintes etapas:

    Gere uma nova lista de certificados revogados usando o comando source vars no diretório ~/openvpn-ca e emitindo o comando revoke-full com o nome do cliente.

    Copie a nova lista de certificados revogados para o diretório /etc/openvpn, substituindo assim a lista antiga.

    Reinicie o serviço OpenVPN.

Este procedimento pode ser usado para revogar quaisquer certificados que você criou anteriormente.

Conclusão

Parabéns! Agora você pode acessar a Internet com segurança, todo o seu tráfego está protegido contra escutas telefônicas de censores e intrusos.

Para configurar clientes adicionais, repita as etapas 6 e 11-13 para cada novo dispositivo. Para revogar o acesso de um cliente, use a etapa 14 .