AVERTISSEMENT : PPTP EST UN PROTOCOLE NON SÉCURISÉ ! Non seulement le cryptage a été violé, mais il envoie votre authentification en texte clair et est facilement intercepté. Il a été estimé que le temps nécessaire pour forcer le mot de passe est à peu près équivalent au temps nécessaire pour forcer une seule clé DES. Envisagez d'utiliser OpenVPN ou une autre architecture VPN au lieu du PPTP !
J'ai utilisé ce guide pour mettre en place un serveur VPN PPTP sur mon serveur Ubuntu 12.04.
Pour résumer les principaux points du lien, cependant :
1 : Installer pptpd
y ufw
. iptables
peut être utilisé à la place de ufw, mais pour des raisons de facilité, ufw
est mieux si vous ne savez pas iptables
.
sudo apt-get install pptpd ufw
2 : Ouvrez les ports nécessaires. Le guide suggère 22 (SSH) et 1723 pour le pptp vpn.
sudo ufw allow 22
sudo ufw allow 1723
sudo ufw enable
3 : Editer /etc/ppp/pptpd-options
. Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/ppp/pptpd-options
), et mettez en commentaire ces lignes en mettant un #
avant eux, si vous voulez que cela fonctionne universellement sur tous les systèmes d'exploitation :
refuse-pap
refuse-chap
refuse-mschap
Vous pouvez commenter cette ligne si vous souhaitez désactiver le cryptage : require-mppe-128
4 : Pendant l'édition /etc/ppp/pptpd-options
ajouter des serveurs DNS pour le VPN. Cet exemple utilise les serveurs OpenDNS :
ms-dns 208.67.222.222
ms-dns 208.67.220.220
5 : Editer /etc/pptpd.conf
. Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/pptpd.conf
). Vous devez ajouter les IP du VPN local pour le système, donc ajouter :
localip 10.99.99.99
remoteip 10.99.99.100-199
Si votre système est un VPS, utilisez l'IP publique pour "localip". S'il ne l'est pas et se trouve sur un réseau local, utilisez l'IP réseau de votre ordinateur. Utilisez des IP et des plages différentes si ces IP existent sur votre sous-réseau ! Si vous ne connaissez pas l'IP publique de votre VPS, trouvez-la en exécutant dig +short myip.opendns.com @resolver1.opendns.com
6 : Edit /etc/ppp/chap-secrets
. Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/ppp/chap-secrets
), et ajoutez les données d'authentification.
Le format pour /etc/ppp/chap-secrets
est :
\[Username\] \[Service\] \[Password\] \[Allowed IP Address\]
Un exemple serait : sampleuser pptpd samplepassword *
7 : Redémarrez pptpd. Exécutez cette commande dans le terminal : sudo /etc/init.d/pptpd restart
8 : Editer /etc/sysctl.conf
. Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/sysctl.conf
). Décommentez la ligne suivante (en supprimant l'élément #
au début de celui-ci) dans /etc/sysctl.conf
: net.ipv4.ip_forward=1
Rechargez la configuration : sudo sysctl -p
9 : Cette étape suppose que vous avez ufw.
Editar /etc/default/ufw
et changez l'option DEFAULT_FORWARD_POLICY
de DROP
a ACCEPT
10 : Cette étape suppose que vous avez ufw.
Editar /etc/ufw/before.rules
et ajoutez le texte suivant au début de l'élément /etc/ufw/before.rules
ou juste avant le *filter
règles (recommandé) :
\# 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
Si vous avez un noyau version 3.18 et plus récent (vous pouvez vérifier cela en exécutant uname -r
), ajoutez également les lignes suivantes avant l'élément # drop INVALID packets ...
ligne :
-A ufw-before-input -p 47 -j ACCEPT
11 : Redémarrez le pare-feu, afin de rafraîchir les ensembles de règles et d'appliquer les règles que nous avons ajoutées à l'ensemble de règles. /etc/ufw/*.rules
des fichiers : sudo ufw disable && sudo ufw enable
Attention : Si vous avez d'autres ports que vous devez ouvrir, par exemple pour HTTPS si votre serveur héberge un site web, vous devez ajouter individuellement ces ports à la liste des ports autorisés à l'aide de la touche sudo ufw allow <PORT>