By:
Bulat Khamitov
We hope you find this tutorial helpful. In addition to guides like this one, we provide simple cloud infrastructure for developers. Learn more →

Como Configurar sua Própria VPN com PPTP

PostedMay 26, 2015 41.7k views VPN

Introdução

Uma das questões mais comuns entre nossos usuários é sobre como adicionar outro endereço IP ao seu servidor. Você pode atribuir seu próprio endereço IP privado ao seu droplet através da criação de um túnel VPN. Esteja você construindo sua própria Rede Virtual Privada (VPN), ou atribuindo um certificado SSL para esse endereço IP, você tem várias opções. De todas as possíveis opções, as mais otimizadas estão entre PPTP e OpenVPN. O protocolo de Tunelamento Ponto-a-Ponto (PPTP) permite a você implementar sua própria VPN muito rapidamente, e é compatível com a maioria dos dispositivos móveis. Mesmo sendo menos seguro que o OpenVPN, ele é também mais rápido e consome menos recursos de CPU.

Passo 1 - Instalação do PPTP

Você terá que selecionar um servidor para ser responsável pelo tratamento de IPs para outros e pela autenticação de todos os seus servidores em sua VPN. Este será o seu servidor PPTP.

No CentOS 6 x64:

rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
yum -y install pptpd

No Ubuntu 12.10 x64:

apt-get install pptpd

Agora, você deve editar o arquivo /etc/pptpd.conf e adicionar as seguintes linhas:

localip 10.0.0.1
remoteip 10.0.0.100-200

Onde localip é o endereço IP do seu servidor e remoteip são IPs que serão atribuídos aos clientes que se conectam a ele.

Depois, você deve configurar a autenticação para o PPTP através da adição de usuários e senhas. Simplesmente adicione-os ao arquivo /etc/ppp/chap-secrets:

Onde client é o username ou nome de usuário, server é o tipo de serviço - pptpd para o nosso exemplo, secret é a senha, e IP addresses especifica quais endereços IP devem autenticar-se. Definindo ‘*’ no campo IP addresses, você especifica que irá aceitar pares username/senha para qualquer IP.

Passo 2 - Adicionar servidores DNS ao arquivo /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Agora, você pode iniciar o daemon PPTP:

service pptpd restart

Verifique que ele está executando e aceitando conexões:

Passo 3 - Configurar Encaminhamento

É importante habilitar o encaminhamento no seu servidor PPTP. Isto permitirá a você encaminhar pacotes entre IPs públicos e privados que você definir com o PPTP. Simplesmente, edite o arquivos /etc/sysctl.conf e adicione a seguinte linha se ela já não estiver lá.

net.ipv4.ip_forward = 1

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

Passo 4 - Criar uma regra NAT para o iptables

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

Caso você queira que seus clientes PPTP falem uns com os outros, adicione as seguintes regras de 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

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

Caso você queira restringir quais servidores podem se conectar aos seus droplets, você pode configurar uma regra iptables que restringe conexões TCP à porta 1723.

Passo 5 - Configurar Clientes

Em seus servidores clientes, instale o cliente PPTP:

yum -y install pptp

Passo 6 - Adicionar módulos de kernel necessários

modprobe ppp_mppe

Crie um novo arquivo /etc/ppp/peers/pptpserver e adicione as seguintes linhas, substituindo name e password com seus próprios valores:

pty "pptp 198.211.104.17 --nolaunchpppd"
name box1
password 24oiunOi24
remotename PPTP
require-mppe-128

Onde 198.211.104.17 é o endereço IP público do seu servidor PPTP, com username ‘box1’ e senha ‘24oiunOi24’ que especificamos no arquivo /etc/ppp/chap-secrets no seu servidor PPTP.

Agora podemos 'chamar' este servidor PPTP, uma vez que este é um protocolo ponto-a-ponto. Seja qual for o nome que você deu a seus pares no arquivo /etc/ppp/peers/, ele deve ser usado nesta linha seguinte. Um vez que chamamos nosso arquivo de pptpserver:

pppd call pptpserver

Você deverá ver conexão com sucesso nos logs do servidor pptp:

No seu cliente PPTP, configure o roteamento para sua rede privada via interface ppp0:

ip route add 10.0.0.0/8 dev ppp0

Sua interface ppp0 deverá estar ativa no seu servidor cliente de PPTP, e pode ser verificada executando-se ifconfig

Agora você pode pingar seu servidor PPTP e quaisquer outros clientes que estiverem conectados a esta rede:

Podemos adicionar nosso segundo cliente PPTP a esta rede:

yum -y install pptp
modprobe ppp_mppe

Adicionar ao arquivo /etc/ppp/peers/pptpserver (substituindo com seus próprios valores de name e password):

pty "pptp 198.211.104.17 --nolaunchpppd"
name box2
password 239Aok24ma
remotename PPTP
require-mppe-128

Agora execute em seu segundo cliente o seguinte:

pppd call pptpserver
ip route add 10.0.0.0/8 dev ppp0

Você pode também pingar o primeiro cliente, visto que os pacotes irão pelo servidor PPTP e serão roteados utilizando as regras de iptables que configuramos anteriormente:

Esta configuração permite a você criar sua própria rede virtual privada:

Se você deseja ter todos os seus dispositivos comunicando-se com segurança em uma rede, esta é uma maneira rápida de implementar isto.

Você pode utilizá-la com Nginx, Squid, MySQL, e quaisquer outras aplicações que você pensar.

Uma vez que o tráfego é criptografado com 128 bits, ele é menos exigente em termos de CPU do que o OpenVPN, e ainda fornece e adiciona um nível de segurança ao seu tráfego.

Creative Commons License