Como configuro uma VPN PPTP no meu próprio servidor Ubuntu?

15

Supondo que eu tenha um Virtual Private Server de alguém como Linode , executando o Ubuntu, como configuro facilmente uma VPN PPTP para que Clientes do Ubuntu podem se conectar a ele?

Por padrão, o Ubuntu oferece a conexão a essas redes PPTP. Eu quero configurá-lo de tal maneira que seja muito fácil se conectar (ou seja, sem instalar nenhum pacote no cliente).

    
por Stefano Palazzo 10.08.2011 / 11:15

3 respostas

28

A configuração do servidor mínimo absoluto

O que se segue são as instruções mínimas absolutas que você precisa para obter um servidor VPN PPTP básico em execução no Ubuntu. Os clientes poderão então entrar em VPN no servidor e rotear seu tráfego de internet para que ele passe pelo servidor para a Internet. Como sempre, consulte a documentação completa para entender o que tudo está fazendo.

Primeiro, instale o software necessário:

sudo apt-get install pptpd

Segundo, habilite ip_forward no kernel para IPv4 removendo o comentário da linha associada em /etc/sysctl.conf :

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)//' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p

Em terceiro lugar, ative o NAT (se já não estiver ativado) para que os usuários na rede VPN privada possam ter seus pacotes roteados para a Internet:

OUTIF='/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*//''
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

Nota: Este guia assume que você não possui firewall configurado no servidor. Se você tiver um firewall no servidor, como UFW , consulte a documentação relevante .

Em quarto lugar, para cada usuário VPN, crie uma conta no arquivo / etc / ppp / chap-secrets . Substitua $USER pelo nome de usuário real que você deseja usar para esse usuário VPN.

KEY='head -c 20 /dev/urandom | sha1sum | nawk '{print $1}''
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

Finalmente, você está pronto para ...

Configurar o cliente

No miniaplicativo do Network Manager , selecione Conexões VPN Configurar VPN e, em seguida, clique em Adicionar . Na tela seguinte, selecione PPTP para o tipo de VPN, depois clique em Create .

Nestajanela,digiteonomedohostouIPdoseuservidorjuntocomonomedeusuárioeachavequevocêadicionouaoarquivo/etc/ppp/chap-secretsnoservidor.

AgoracliqueemAvançado.

Nesta janela, habilite "Usar criptografia ponto a ponto (MPPE)" e selecione a segurança 128-bit . Desative o uso da autenticação MSCHAP (deixe MSCHAPv2 ativado).

Por fim, clique em Ok e em Salvar para fechar a janela anterior.

Agora você pode testar a conexão VPN acessando o applet Network Manager → Conexões VPN e selecionando a conexão que você acabou de criar. Certifique-se de receber uma mensagem informando que a conexão VPN foi bem-sucedida e, em seguida, navegue até um site de verificação de IP para verificar se o seu IP agora aparece como o IP do servidor.

Se você receber uma mensagem dizendo que a conexão VPN com o servidor falhou: primeiro verifique se você digitou corretamente as configurações do cliente; segundo, verifique se o cliente tem conectividade de rede com a porta TCP 1723 no servidor; finalmente, verifique o arquivo de log / var / log / messages no servidor para mais dicas. Se a sua conexão VPN for bem-sucedida, mas você subsequentemente não conseguir navegar em nenhum site do cliente, consulte este guia de diagnóstico incrivelmente útil no site pptpd.

Notas

Se a rede local à qual você está conectado estiver usando as sub-redes 192.168.0.0/24 e 192.168.1.0/24, você terá problemas, porque é o que o servidor PPTP usa por padrão. Você terá que configurar o PPTP para usar diferentes sub-redes em pptpd.conf .

Existem inúmeras outras alterações de configuração que você pode querer fazer. Por exemplo, todas as pesquisas de nome de domínio ainda serão consultadas usando o servidor DNS local em vez de passar pelo servidor PPTP. Reserve um tempo para ler a documentação completa para descobrir como alterar essa configuração e muitas outras.

    
por Michael Kropat 25.08.2011 / 08:12
4

Este tutorial que escrevi guiará Você através de. Isso deve ajudá-lo a evitar erros comuns cometidos por pessoas que usam o VPS.

Primeiro faça o login no seu Painel VPS e ative TUN / TAP e PPP . Se você não tem essa opção, entre em contato com seu ISP para ativar isso para você.

Primeiro, instale este pacote:

sudo apt-get install pptpd

Como não queremos que nossa VPN seja pública, vamos criar usuários.
Eu estou usando VI você pode usar o NANO ou qualquer outro editor de texto que você goste

vi /etc/ppp/chap-secrets

O formato é

[username] [service] [password] [ip]

Exemplo

john pptpd johnspassword *

* significa que o acesso de todos os endereços IP é permitido, especifique o IP somente se você tiver um estático.

Editando configurações do PPTPD

vi /etc/pptpd.conf

Procure as configurações localip e remoteip. Remova o # (caractere de comentário) de ambos para que essas configurações sejam realmente reconhecidas. Altere o localip para o seu IP do servidor. Se você não souber o IP do seu servidor, poderá procurar em seu painel de controle do VPS.

O remoteip é basicamente o intervalo de IP que os clientes (computadores conectados à sua VPN) serão atribuídos. Por exemplo, se você deseja o seguinte intervalo de IP: 192.168.120.231-235, seu servidor VPN poderá atribuir 192.168.120.232, 192.168.120.233, 192.168.120.234 e 192.168.120.235 aos clientes. Cabe a você o que você deseja usar para este campo.

Pessoalmente, escolho esta configuração:

localip 10.0.0.1
remoteip 10.0.0.100-200

Assim, posso obter cerca de 200 clientes conectados.

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

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Você pode adicionar isso ao final do arquivo ou encontrar essas linhas, descomentá-las e alterar os IPs para o DNS público desejado.

Configurar encaminhamento

É importante ativar o encaminhamento de IP em seu servidor PPTP. Isso permitirá que você encaminhe pacotes entre IPs públicos e IPs privados que você configurou com PPTP. Simplesmente edite o arquivo /etc/sysctl.conf e adicione a seguinte linha, caso ainda não exista:

net.ipv4.ip_forward = 1

Para tornar as alterações ativas, execute sysctl -p

Crie uma regra de NAT para o iptables

Esta é uma parte importante, se você estiver usando o VPS, provavelmente não usará eth0, mas venet0, você deve verificar qual interface está executando ifconfig

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

Se você também quiser que seus clientes PPTP conversem entre si, adicione as seguintes regras do iptables:

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

Novamente, você precisa substituir eth0 por venet0 se estiver usando o VPS.

Eu recomendaria correr

sudo iptables-save

Agora, o seu servidor PPTP também funciona como um roteador.

Você pode executar este comando para que o serviço VPN seja iniciado na inicialização

systemctl enable pptpd

Eu recomendo instalar o iptables-persistent para que as regras permaneçam mesmo após a reinicialização

sudo apt-get install -y iptables-persistent
    
por Luka 31.05.2017 / 15:28
3

Siga este tutorial: Servidor VPN PPTP com o Ubuntu

% bl0ck_qu0te%     
por Ilias 24.08.2011 / 20:27

Tags