web-dev-qa-db-fra.com

Comment configurer un PPTP VPN sur mon propre serveur Ubuntu?

En supposant que j’ai un serveur privé virtuel de quelqu'un comme Linode , sous Ubuntu, comment puis-je configurer facilement un VPN PPTP afin que les clients Ubuntu puissent s'y connecter?

Par défaut, Ubuntu propose de se connecter à ces réseaux PPTP. Je veux le configurer de telle sorte qu'il soit très facile de se connecter (c'est-à-dire sans installer de paquet sur le client).

15
Stefano Palazzo

La configuration minimale absolue du serveur

Vous trouverez ci-dessous les instructions minimales absolues nécessaires pour obtenir un serveur VPN PPTP de base fonctionnant sous Ubuntu. Les clients pourront alors utiliser un réseau privé virtuel (VPN) sur le serveur et acheminer leur trafic Internet afin qu’il passe par le serveur à Internet. Comme toujours, consultez documentation complète pour comprendre ce que tout fait.

Tout d'abord, installez le logiciel requis:

Sudo apt-get install pptpd

Deuxièmement, activez ip_forward dans le noyau pour IPv4 en supprimant la mise en commentaire de la ligne associée dans / etc/sysctl.conf:

Sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
Sudo -i sysctl -p

Troisièmement, activez NAT (s'il n'est pas déjà activé) afin que les utilisateurs du réseau VPN privé puissent faire acheminer leurs paquets vers Internet:

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`
Sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
Sudo sed -i "\$i$CMD\n" /etc/rc.local

Remarque: Ce guide suppose que vous n'avez pas de pare-feu configuré sur le serveur. Si vous avez un pare-feu sur le serveur, tel que UFW , consultez plutôt documentation pertinente .

Quatrièmement, pour chaque utilisateur VPN, créez un compte dans le fichier / etc/ppp/chap-secrets. Remplacez $USER par le nom d'utilisateur que vous souhaitez utiliser pour cet utilisateur VPN.

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | Sudo tee -a /etc/ppp/chap-secrets

Enfin, vous êtes prêt à ...

Configurez le client

Dans le applet Network Manager , sélectionnez Connexions VPNConfigurer le VPN, puis cliquez sur Ajouter. Sur l'écran suivant, sélectionnez PPTP pour le type de VPN, puis cliquez --- Créer.

enter image description here

Dans cette fenêtre, entrez le nom d'hôte ou l'adresse IP de votre serveur, ainsi que le nom d'utilisateur et la clé que vous avez ajoutés au fichier / etc/ppp/chap-secrets sur le serveur.

Maintenant, cliquez sur Advanced.

enter image description here

Dans cette fenêtre, activez "Utiliser le cryptage point à point (MPPE)" et sélectionnez 128-bit ​​security. Désactivez l'utilisation de MSCHAP authentification (laissez MSCHAPv2 activé).

Enfin, cliquez --- Ok puis Enregistrer pour fermer la fenêtre précédente.

Vous pouvez maintenant tester la connexion VPN en accédant à l'applet Network Manager → Connexions VPN et en sélectionnant la connexion que vous venez de créer. Assurez-vous de recevoir un message indiquant que la connexion VPN a été établie, puis accédez à un site Web de vérification d’IP pour vérifier que votre adresse IP apparaît maintenant en tant qu’adresse du serveur.

Si vous recevez un message indiquant que la connexion VPN au serveur a échoué: vérifiez d’abord que vous avez entré correctement les paramètres du client; deuxièmement, vérifiez que le client dispose d'une connexion réseau au port 1723 sur TCP 1723 sur le serveur; Enfin, consultez le fichier journal / var/log/messages sur le serveur pour obtenir des indices supplémentaires. Si votre connexion VPN réussit mais que, par la suite, vous ne parvenez pas à accéder aux sites Web du client, consultez ce guide de diagnostic extrêmement utile sur le site Web pptpd.

Notes

Si le réseau local auquel vous êtes connecté utilise les sous-réseaux 192.168.0.0/24 et 192.168.1.0/24, vous rencontrerez des problèmes, car c’est ce que le serveur PPTP utilise par défaut. Vous devrez configurer PPTP pour utiliser différents sous-réseaux dans pptpd.conf .

Vous voudrez peut-être apporter de nombreuses autres modifications à la configuration. Par exemple, toutes vos recherches de noms de domaine seront toujours interrogées à l'aide de votre serveur DNS local au lieu de passer par le serveur PPTP. Prenez le temps de lire documentation complète pour savoir comment modifier ce paramètre et bien d’autres.

28
Michael Kropat

Ce tutoriel, j'ai écrit vous guidera à travers. Cela devrait vous aider à éviter les erreurs courantes commises par des personnes utilisant VPS.

Commencez par vous connecter à votre panneau VPS et activez TUN/TAP et PPP. Si vous ne disposez pas de cette option, contactez votre fournisseur de services Internet pour l'activer pour vous.

enter image description here

Installez d'abord ce paquet:

Sudo apt-get install pptpd

Parce que nous ne voulons pas que notre VPN soit public, nous allons créer des utilisateurs.
J'utilise VI, vous pouvez utiliser NANO ou l'éditeur de texte de votre choix

vi /etc/ppp/chap-secrets

Le format est

[username] [service] [password] [ip]

Exemple

john pptpd johnspassword *

* signifie que l'accès de toutes les adresses IP est autorisé, spécifiez l'adresse IP uniquement si vous en avez une statique.

Modification des paramètres PPTPD

vi /etc/pptpd.conf

Recherchez les paramètres localip et remoteip. Supprimez le # (caractère de commentaire) pour les deux afin que ces paramètres soient réellement reconnus. Changez localip sur votre IP de serveur. Si vous ne connaissez pas l’IP de votre serveur, vous pouvez regarder dans le panneau de configuration de votre VPS.

Le remoteip est fondamentalement la plage IP à laquelle les clients (ordinateurs connectés à votre VPN) seront attribués. Par exemple, si vous souhaitez que la plage d'adresses IP suivante: 192.168.120.231-235, votre serveur VPN puisse affecter 192.168.120.232, 192.168.120.233, 192.168.120.234 et 192.168.120.235 à des clients. C’est à vous de choisir ce que vous voulez utiliser pour ce champ.

Personnellement je choisis ces paramètres:

localip 10.0.0.1
remoteip 10.0.0.100-200

Je peux donc connecter environ 200 clients.

Ajouter des serveurs DNS à /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Vous pouvez soit ajouter ceci à la fin du fichier, soit trouver ces lignes, les décommenter et changer les adresses IP du DNS public de votre choix.

Mettre en place le transfert

Il est important d'activer le transfert IP sur votre serveur PPTP. Cela vous permettra de transférer des paquets entre IP publique et privée que vous avez configurés avec PPTP. Éditez simplement /etc/sysctl.conf et ajoutez la ligne suivante si elle n’existe pas déjà:

net.ipv4.ip_forward = 1

Pour rendre les modifications actives, exécutez sysctl -p

Créer une règle NAT pour iptables

Ceci est une partie importante, si vous utilisez VPS, vous n'utiliserez probablement pas eth0 mais venet0 à la place, vous devriez vérifier votre interface en exécutant ifconfig

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

Si vous souhaitez également que vos PPTP clients se parlent, ajoutez les règles iptables suivantes:

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

Encore une fois, vous devez remplacer eth0 par venet0 si vous utilisez VPS.

Je recommanderais de courir

Sudo iptables-save

Votre serveur PPTP agit également en tant que routeur.

Vous pouvez exécuter cette commande pour que le service VPN démarre au démarrage

systemctl enable pptpd

Je recommande d'installer iptables-persistent afin que les règles restent en place même après le redémarrage

Sudo apt-get install -y iptables-persistent
4
Luka

Suivez ce tutoriel: Serveur VPN PPTP avec Ubunt

  1. Sous Sélection du logiciel, sélectionnez Serveur OpenSSH - pour la gestion à distance de la machine - et sélection manuelle du package pour le package pptpd actuel. Si vous souhaitez davantage de services, par exemple si vous souhaitez utiliser l'ordinateur également en tant que serveur Web, vous pouvez bien sûr sélectionner le logiciel supplémentaire. Pour des raisons de sécurité, je conseille généralement aux personnes de ne faire appel qu'à un seul service accessible de l'extérieur par machine si elles sont configurées dans un environnement critique, mais cela dépend vraiment de vous.

  2. Dans la sélection manuelle, accédez à les packages non installés> net où vous trouverez pptpd. Sélectionnez-le et appuyez deux fois sur "g" pour installer le package.

  3. Laissez l'installation se terminer et redémarrez votre système.

  4. SSH dans votre ordinateur nouvellement configuré et exécutez d'abord Sudo aptitude update && Sudo aptitude safe-upgrade pour mettre à jour tous les packages. Redémarrez si nécessaire.

  5. Ouvrez le fichier pptpd.conf: Sudo nano /etc/pptpd.conf Ajustez les paramètres IP en bas à votre convenance. Sous IP local, vous entrez l’adresse IP du réseau local de votre serveur VPN (si vous ne le connaissez pas, saisissez "Sudo ifconfig" pour afficher vos interfaces réseau et les adresses IP attribuées). Par ailleurs, je recommande de configurer une adresse IP statique dans/etc/network/interfaces ou dans la configuration de votre routeur.

  6. Si vous le souhaitez, vous pouvez modifier le nom d’hôte dans /etc/ppp/pptpd-options

  7. Spécifiez les noms d'utilisateur et les mots de passe auxquels vous souhaitez donner accès à votre vpn: Sudo nano /etc/ppp/chap-secrets. Si vous avez modifié le nom d'hôte à l'étape précédente, assurez-vous de saisir le même nom d'hôte sous maintenant servername__

    Exemple:

    # client        server  secret                  IP addresses
    eubolist   pptpd   myübersecretpassword   *
    

    Comme dans pptp, il n'y a pas de clé de sécurité. La sécurité dépend uniquement du mot de passe. C'est pourquoi vous devriez choisir un mot de passe long (par exemple 32 caractères) et aléatoire. Vous pouvez générer un tel mot de passe ici.

  8. Nous devons maintenant configurer ip-masquerading: Sudo nano /etc/rc.local

    Ajoutez les lignes suivantes au-dessus de la ligne indiquant "sortie 0"

    # PPTP IP forwarding
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    Je vous recommande éventuellement de sécuriser votre serveur SSH contre les attaques par force brute:

    #SSH Brute Force Protection
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
    

    DROP

    (à insérer également au-dessus de "sortie 0")

    Vous devrez peut-être remplacer "eth 0" par une autre interface, en fonction de l'interface configurée pour se connecter à Internet sur votre ordinateur.

  9. Enfin, décommentez cette ligne dans /etc/sysctl.conf:

    net.ipv4.ip_forward=1
    
  10. Redémarrer

  11. Si votre serveur VPN ne se connecte pas directement à Internet, vous devrez peut-être transférer le port 1723 TCP et GRE vers l'adresse IP du réseau local de votre serveur VPN. Reportez-vous au manuel de votre routeur ou à portforward.com pour obtenir des instructions spécifiques au fournisseur. Encore une fois, vous devrez peut-être attribuer une adresse IP statique dans /etc/network/interfaces.

3
Ilias