AVISO: O PPTP É UM PROTOCOLO INSEGURO! Não apenas a criptografia foi violada, como também envia sua autenticação em texto não criptografado e é facilmente interceptada. Estima-se que a quantidade de tempo necessária para aplicar força bruta à senha é aproximadamente equivalente ao tempo necessário para aplicar força bruta em uma única chave DES. Considere usar o OpenVPN ou outra arquitetura VPN em vez do PPTP!
Usei este guia para configurar um servidor VPN PPTP no meu servidor Ubuntu 12.04.
Para resumir os pontos principais no link, no entanto:
1: Instale pptpde ufw. iptablespode ser usado no lugar do ufw, mas por uma questão de facilidade, ufwé melhor se você não souber iptables.
sudo apt-get install pptpd ufw
2: Abra as portas necessárias. O guia sugere 22 (SSH) e 1723 para o pptp vpn.
sudo ufw permitir 22
sudo ufw permitir 1723
sudo ufw enable
3: Editar /etc/ppp/pptpd-options. Abra o arquivo com seu editor favorito (o meu é o nano, então o comando para mim é sudo nano /etc/ppp/pptpd-options) e comente essas linhas colocando um #antes delas, se você quiser que isso funcione universalmente em todos os sistemas operacionais:
recusar-pap
recusar-chap
refuse-mschap
Você pode comentar esta linha se desejar desativar a criptografia: require-mppe-128
4: Durante a edição /etc/ppp/pptpd-options, adicione servidores DNS para a VPN. Este exemplo usa servidores OpenDNS:
ms-dns 208.67.222.222
ms-dns 208.67.220.220
5: Editar /etc/pptpd.conf. Abra o arquivo com seu editor favorito (o meu é o nano, então o comando para mim é sudo nano /etc/pptpd.conf). Você precisa adicionar os IPs VPN locais para o sistema, então adicione:
localip 10.99.99.99
remoteip 10.99.99.100-199
Se o seu sistema for um VPS, use o IP público para "localip". Se não estiver e estiver em uma rede local, use o IP da rede do seu computador. Use IPs e intervalos diferentes se esses IPs existirem na sua sub-rede! Se você não conhece seu IP público do seu VPS, localize-o executandodig +short myip.opendns.com @resolver1.opendns.com
6: Editar /etc/ppp/chap-secrets. Abra o arquivo com seu editor favorito (o meu é o nano, então o comando para mim é sudo nano /etc/ppp/chap-secrets) e adicione os dados de autenticação.
O formato para /etc/ppp/chap-secretsé:
[Nome de usuário] [Serviço] [Senha] [Endereço IP permitido]
Um exemplo seria: sampleuser pptpd samplepassword *
7: Reinicie o pptpd. Execute este comando no terminal:sudo /etc/init.d/pptpd restart
8: Editar /etc/sysctl.conf. Abra o arquivo com seu editor favorito (o meu é o nano, então o comando para mim é sudo nano /etc/sysctl.conf). Remova o comentário da seguinte linha (removendo a #no início) em /etc/sysctl.conf: net.ipv4.ip_forward=1
Recarregue a configuração: sudo sysctl -p
9: Esta etapa supõe que você tenha ufw.
Edite /etc/default/ufwe altere a opção DEFAULT_FORWARD_POLICYde DROPparaACCEPT
10: Esta etapa assume que você possui ufw.
Edite /etc/ufw/before.rulese adicione o seguinte no início /etc/ufw/before.rulesou imediatamente antes das *filterregras (recomendado):
# Regras da tabela NAT
* nat
: ACEITAÇÃO PÓS-OPERATÓRIA [0: 0]
# Permitir tráfego de encaminhamento para eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
# Processar as regras da tabela NAT
COMETER, ENTREGAR
Se você possui a versão 3.18 do kernel e mais recente (você pode verificar isso executando uname -r), adicione também as seguintes linhas antes da # drop INVALID packets ...linha:
-A ufw-before-input -p 47 -j ACCEPT
11: Reinicie o firewall, atualize os conjuntos de regras e aplique as regras que adicionamos aos /etc/ufw/*.rulesarquivos: sudo ufw disable && sudo ufw enable
Aviso: Se você tiver outras portas que você precisa abrir, como para HTTPS se o servidor hospedar um site, será necessário adicionar essas portas individualmente à lista de permissões comsudo ufw allow <PORT>