WARNING: PPTP IS AN INSECURE PROTOCOL! Not only has the encryption been breached, but it sends your authentication in clear text and is easily intercepted. It has been estimated that the amount of time required to brute-force the password is roughly equivalent to the time required to brute-force a single DES key. Consider using OpenVPN or another VPN architecture instead of PPTP!
Eu usei este guia para configurar um servidor VPN PPTP no meu servidor Ubuntu 12.04.
Para resumir os principais pontos do link:
1: instale pptpd
e ufw
. iptables
pode ser usado no lugar do ufw, mas para facilitar, 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 allow 22
sudo ufw allow 1723
sudo ufw enable
3: edite /etc/ppp/pptpd-options
. Abra o arquivo com seu editor favorito (o meu 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:
refuse-pap
refuse-chap
refuse-mschap
Você pode comentar esta linha se quiser desabilitar a criptografia: require-mppe-128
4: Ao editar /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: edite /etc/pptpd.conf
. Abra o arquivo com seu editor favorito (o meu 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 de 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, encontre-o executando dig +short myip.opendns.com @resolver1.opendns.com
6: edite /etc/ppp/chap-secrets
. Abra o arquivo com seu editor favorito (o meu 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
é:
[Username] [Service] [Password] [Allowed IP Address]
Um exemplo seria: sampleuser pptpd samplepassword *
7: Reinicie o pptpd. Execute este comando no terminal: sudo /etc/init.d/pptpd restart
8: Edite /etc/sysctl.conf
. Abra o arquivo com seu editor favorito (o meu nano, então o comando para mim é sudo nano /etc/sysctl.conf
). Desmarque a seguinte linha (removendo #
no início) em /etc/sysctl.conf
: net.ipv4.ip_forward=1
Recarregue a configuração: sudo sysctl -p
9: Este passo pressupõe que você tenha ufw.
Edite /etc/default/ufw
e altere a opção DEFAULT_FORWARD_POLICY
de DROP
para ACCEPT
10: Este passo assume que você tem ufw.
Edite /etc/ufw/before.rules
e adicione o seguinte no início de /etc/ufw/before.rules
ou antes das regras *filter
(recomendado):
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow forward traffic to eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
# Process the NAT table rules
COMMIT
Se você tiver o kernel versão 3.18 e mais recente (você pode verificar isso executando uname -r
), adicione também as seguintes linhas antes da linha # drop INVALID packets ...
:
-A ufw-before-input -p 47 -j ACCEPT
11: Reinicie o firewall, atualize os conjuntos de regras e aplique as regras que adicionamos aos arquivos /etc/ufw/*.rules
: sudo ufw disable && sudo ufw enable
Aviso: Se tiver outras portas que você precisa abrir, como HTTPS, se o seu servidor hospeda um site, você precisa adicionar essas portas individualmente à lista permitida com sudo ufw allow <PORT>