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 pptpd
e ufw
. iptables
pode 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/ufw
e altere a opção DEFAULT_FORWARD_POLICY
de DROP
paraACCEPT
10: Esta etapa assume que você possui ufw.
Edite /etc/ufw/before.rules
e adicione o seguinte no início /etc/ufw/before.rules
ou imediatamente antes das *filter
regras (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/*.rules
arquivos: 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>