Como Configurar sua Própria VPN com PPTP
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.
2 Comments