24
novembre
2021
VPN sur PPTP en 5 minutes
16:46

VPN sur PPTP en 5 minutes

Pour accéder au serveur domestique sur lequel le récepteur fonctionne, j'ai créé un réseau privé virtuel (VPN).
La méthode la plus simple (mais pas la plus sécurisée) est le VPN utilisant le protocole PPTP.

Chez moi, j'ai un routeur Internet Zyxel Keenetic Lite III installé avec la dernière version du logiciel

2.15.C.6.0-1.

Le routeur vous permet d'organiser des réseaux privés virtuels (VPN) des types suivants pour accéder à votre réseau domestique :

  1. Serveur VPN PPTP
  2. Serveur VPN SSTP
  3. Serveur VPN L2TP/IPSEC,
  4. Serveur VPN IPsec

J'ai choisi PPTP en raison de la rapidité d'installation.
J'envisage de mettre en place PPTP avec un cryptage 40 bits, qui protège le trafic de la visualisation par des tiers et est autorisé par la loi en vigueur sur le territoire de l'Union douanière de la Russie, de la Biélorussie et du Kazakhstan.

1. Ajout du module "Serveur PPTP" au routeur Zyxel

Accédez au panneau de configuration - Paramètres généraux :
routeur1

Changez l'ensemble des modules système en cliquant sur le bouton "Modifier le jeu de composants"
routeur2

Faites défiler la liste et dans la section "Fonctions réseau" activez le module "Serveur VPN PPTP"
Après avoir enregistré la configuration du module, le routeur redémarrera.

2. Modification de la plage d'adresses IP dynamiques du routeur (DHCP)

Nous nous connectons au panneau de commande du routeur et dans la section "Réseau domestique" regardez l'adresse IP de votre réseau domestique.
Par exemple, 192.168.88.1 - peut être remplacé par n'importe quelle plage « Réseaux privés », dans cet exemple, comme indiqué.
routeur3
Appuyez sur le bouton "Afficher les paramètres DHCP".
routeur4
Nous indiquons 10 clients à partir de l'adresse 192.168.88.1 - ce sont les adresses des appareils au sein du réseau (smartphones, téléviseurs).
Veuillez noter que dans ce cas, les adresses DHCP peuvent être occupées de 1 à 10.

(Pour le réseau privé virtuel ci-dessous, le même sous-réseau de classe « C » sera utilisé, mais l'émission d'adresses commençant par le nombre 100).

3. Ajouter un utilisateur pour VPN

Le routeur utilise les identifiants/mots de passe spécifiés dans l'onglet pour connecter les utilisateurs "Utilisateurs et accès".

Dans l'onglet « Utilisateurs et accès », ajoutez un nouvel utilisateur et proposez un mot de passe complexe (notez-le sur une feuille de papier).
Enregistrez les modifications.
routeur5

N'oubliez pas de faire défiler vers le bas et de cocher la case du serveur VPN. Enregistrez les modifications.
routeur55

4. Activez le VPN PPTP et autorisez la connexion utilisateur

Activation du composant PPTP sur l'onglet du tableau de bord appelé "Candidatures" dans la partie inférieure gauche de la fenêtre.
routeur6
En cliquant sur le lien « Serveur VPN PPTP », on accède au menu des paramètres du serveur VPN.

Nous corrigeons l'adresse du réseau interne, mais laissons l'adresse de départ des clients VPN commencer par le chiffre 100.
routeur7
Là, nous vérifions également que l'utilisateur vpnuser, que nous avons ajouté précédemment, est activé. Il pourra se connecter au serveur.
routeur8
Enregistrez. La configuration du serveur est terminée.

5. Première connexion au VPN PPTP depuis un smartphone Android

Dans "Paramètres" - "Réseau et Internet" - "Avancé" - VPN, cliquez sur "+"
Dans le profil VPN de votre smartphone :

  • nom

  • tapez - PPTP

  • adresse du serveur - entrez l'adresse IP externe (blanche) du routeur du réseau domestique

  • TTC Cryptage PPP (MPPE)

  • Nom d'utilisateur - vpnuser

  • Mot de passe - mot de passe de l'utilisateur vpnuser
    *Enregistrer
    VPN

Connectez-vous au VPN - appuyez sur le nom de la connexion VPN sur la connexion et appuyez sur le bouton "Connecter"^
VPN2

La configuration est terminée.

!Remarque : si la connexion via Wi-Fi ne fonctionne pas, la raison réside dans les paramètres du routeur de l'organisation, qui n'autorise pas les messages du serveur PPTP vers le client derrière NAT. Dans ce cas, vous devez passer votre smartphone du Wi-Fi à l'Internet mobile.

Les étapes suivantes sont requises pour se connecter à partir d'un client Linux (non obligatoire).

6. Installation du client VPN PPTP sur un ordinateur client exécutant Linux

sudo apt-get update
sudo apt-get install pptp-linux

7. Configuration d'un client VPN PPTP

Créez et modifiez le fichier comme suit. Depuis la ligne de commande, nous exécutons la commande :

sudo nano /etc/ppp/peers/test-vpn

Contenu du fichier "/etc/ppp/peers/test-vpn", où 56.78.90.12 est indiqué en première ligne -Adresse IP "blanche" du routeur derrière lequel est installé le serveur domestique:

pty "pptp 56.78.90.12 --nolaunchpppd"
name vpnuser #логин
remotename TEST #имя соединения
require-mppe-40 #включаем поддержку MPPE
defaultroute #создавать маршрут по умолчанию
replacedefaultroute #принудительно изменять маршрут по умолчанию
unit 12 #номер ppp интерфейса
persist #восстанавливать подключение при обрыве связи
maxfail 10 #количество попыток переподключения
holdoff 2 #интервал между подключениями
file /etc/ppp/options.pptp
ipparam $TUNNEL

Enregistrement : Ctrl+O, Entrée, Ctrl+X.

Si l'abonné ne dispose pas d'adresse IP fixe "blanche", il doit être connecté (commandé, payé) auprès du fournisseur. Ce service est souvent appelé "Adresse IP directe" ou "IP dédiée statiqueou " Adresse IP fixe". Sur mon plan tarifaire, l'adresse IP Direct « blanche » s'est avérée gratuite (vous pouvez l'activer et la désactiver dans votre « Compte Personnel »). Si le routeur ne dispose que d'une adresse IP externe dynamique, la connexion via PPTP n'est pas possible. Dans ce cas, vous pouvez essayer d'utiliser la méthode SSTP via « cloud » Zyxel.

Ajout: contenu du fichier /etc/ppp/options.pptp sur le client :

lock
noauth
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
require-mppe
asyncmap 0
debug
crtscts
hide-password
modem
mtu 1500
noipx
persist


8. Préciser le nom d'utilisateur et le mot de passe sur le client dans le fichier "secrets"

sudo nano /etc/ppp/chap-secrets

J'ai inséré le texte suivant, où le premier paramètre est le nom d'utilisateur, le deuxième est le nom de connexion et le troisième est le mot de passe :

"vpnuser" TEST "mypassword"

mypassword doit correspondre au mot de passe du même utilisateur sur le serveur (voir point 3).

9. Activation des modules du noyau Linux et configuration d'un pare-feu sur le client

Sur la plupart des distributions Linux, vous devez activer le module noyau "nf_conntrack_pptp" pour exécuter :

sudo modprobe ip_gre
sudo modprobe nf_nat_pptp
sudo modprobe nf_conntrack_pptp

Dans le pare-feu, vous devez autoriser la connexion du côté serveur vers le client :

sudo ufw allow proto gre from внешний_IP_адрес_сервера
sudo service ufw restart

10. Première connexion d'un client Linux à un réseau domestique via VPN

Depuis le client (un autre PC) exécutez la commande :

sudo pon test-vpn nodetach

Cela se connectera au VPN et au réseau domestique. Le résultat du programme "pon" est le suivant :

Utilisation de l'interface ppp12
Connectez-vous : ppp12 <--> /dev/pts/1
L'authentification CHAP a réussi
Compression sans état MPPE 40 bits activée
remplacement de l'ancienne route par défaut vers enp2s0 [192.168.0.1]
adresse IP locale 192.168.88.100
adresse IP distante 192.168.88.1

Ainsi, une connexion client a été établie sous l'adresse 192.168.88.100
et tous les appareils du réseau sont disponibles, où 192.168.88.0 est le réseau domestique,
1-10 - périphériques réseau sur le réseau domestique, 100-110 clients connectés via VPN.

L'adresse IP externe du client deviendra l'adresse IP du réseau domestique sur Internet, voir 2ip.ru. Tous les sites Web sont accessibles via NAT.
La configuration du VPN a pris environ 5 minutes. 😀

Pour déconnecter la connexion VPN, cliquez sur Ctrl+C.

12. Diagnostic (si nécessaire)

Sortie du journal système avec suivi.

tail -f /var/log/syslog

13. Ajout. Autoriser une connexion à démarrer en tant qu'utilisateur standard (non privilégié)

Il est nécessaire d'éliminer la lacune - lancer pon à l'aide de la commande sudo.

Sudo était nécessaire car... Lors d'une connexion sans droits root, une erreur se produira :

"anon warn[pptp_gre_bind:pptp_gre.c:102] : socket : opération non autorisée
anon fatal[main:pptp.c:360] : Impossible de lier le socket GRE, abandon.
Raccrochement du modem
Connexion terminée."

Éliminer l'erreur est simple (si vous savez comment) - exécutez deux commandes dans le terminal :

Première équipe— nous donnons le droit d'exécuter "pptp" au nom du superutilisateur.
Où "chmod u+s" est le réglage du bit setuid, qui affecte le lancement du programme : au lieu d'utiliser les privilèges de l'utilisateur actuel, le programme s'exécute avec les privilèges du propriétaire (et le propriétaire du fichier exécutable /usr/sbin/pptp est root) :

sudo chmod u+s /usr/sbin/pptp

Deuxième équipe ajoute un utilisateur au groupe "dip" de l'utilisateur "username", qui exécute le client pptp sur cet ordinateur (vous pouvez le découvrir avec la commande whoami). Ici "dip" est un groupe ayant le droit de lancer un tunnel pptp.

sudo usermod -aG dip username

Après cette configuration supplémentaire, la connexion depuis le client est démarrée avec une commande qui peut être ajoutée au fichier batch « vpn.sh » :

pon test-vpn nodetach

14. Résoudre le problème de la terminaison du tunnel PPTP, augmentant la fiabilité

In my case, the PPTP connection hung after 5-10 seconds with the error rcvd [LCP TermAck id=0xb].

  1. The error is mainly caused by a poor quality patch cord. After replacing the cable the problem was solved. Point-to-point speed increased from 26 to 46 Mbit/s. Thus, the PPP protocol is sensitive to line quality.

  2. Si la ligne est mauvaise, l'ajouter au fichier aide "/etc/ppp/options" paramètre suivant

    noauth

(The connection is based on the trust of the client and server).

  1. It is also advisable to configure the channel - reduce the MTU size. Je l'ai sélectionné comme suit : d'abord, dans le fichier "/etc/ppp/options", j'ai spécifié la taille maximale de 1500. Une fois le tunnel installé, en utilisant la commande ping nom_serveur -M do -s 1400 et en diminuant le nombre, j'ai trouvé la taille MTU - dans mon cas 1318.

J'ai entré la valeur MTU trouvée dans le fichier "/etc/ppp/options"

mtu 1318

Si le canal externe est de mauvaise qualité (pertes de paquets, ruptures de connexion et reconnexions), une forte réduction du MTU jusqu'à 500 permet :

mtu 500

Fichier d'options pour les conditions complexes :

noauth
asyncmap 0
crtscts
lock
hide-password
modem
-mn
debug
mtu 500
lcp-echo-interval 2
lcp-echo-failure 5
lcp-restart 3
lcp-max-configure 2
noipx

persist

Ensuite, exécutez la commande connect

pon test-vpn nodetach

Dépendance de la vitesse de transmission sur la taille du bloc MTU

Vitesse iPerf mesurée entre deux PC connectés par VPN est indiquée dans le tableau :

Valeur MTU,
octets
Vitesse VPN PPTP,
Mbit/s
500 25.6
768 32,5
1000 35,5...40,7
1056 42,1...47,9
1256 43,3...53,0
1280 48...49.1
MTU automatique (=1500) 42,5...53,6

15. Contrôle de disponibilité

En externe, le port 1723/TCP est ouvert sur le routeur :

sudo nmap IP_адрес_сервера -p 1723

PORT STATE SERVICE
1723/tcp open pptp

A l’intérieur, après connexion au réseau local via VPN PPTP, les adresses IP locales sont disponibles :

ping внутренний_ip_адрес_сервера_или_роутера

внутренний_ip_адрес_сервера_или_роутера— l'adresse de l'ordinateur ou du routeur du réseau interne auquel nous nous connectons.

Dans le routeur, dans la section serveur DHCP, vous devez enregistrer le PC auquel vous vous connectez afin qu'il ait statique adresse IP.

16. Connexion au serveur via RDP en utilisant Remmina

Pour RDP, j'utilise le client remmina :

sudo apt-get install remmina

lancement :

remmina

En remmina, j'ai créé une connexion à un PC distant. L'affichage des informations sur l'écran et le contrôle du PC fonctionnent correctement.

17. Résolution du problème "envoyé [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x86451d9c> ]"

1) Chargez les modules du noyau en mémoire :

sudo modprobe ip_gre
sudo modprobe nf_nat_pptp
sudo modprobe nf_conntrack_pptp
sudo modprobe nf_conntrack_proto_gre

2) Essayez de vous connecter temporairement en tant que root :

sudo pon test-vpn nodetach

18. Configuring PPTP VPN using the Network Manager GUI

В системном лотке нажал на иконку сети _левой_ кнопкой мыши

Start adding VPN PPTP
Type de connexion VPN sélectionné à ajouter - PPTP :
Sélectionnez le type de VPN - PPTP
Et j'ai appuyé sur le bouton "Créer...".

En haut de la fenêtre, j'ai mis nom de connexion par exemple "PPTP".

Sur le deuxième onglet en partant de la gauche, VPN indiquait les paramètres du serveur
Configuration des paramètres PPTP (partie 1) - onglet VPN
*Passerelle*- vous devez spécifier une adresse IP fixe externe ou un FQDN de votre routeur de réseau domestique
Nom d'utilisateur**- c'est le nom d'utilisateur du routeur domestique, qui fait office de serveur VPN PPTP
*Mot de passe- c'est le mot de passe de l'utilisateur avec le nom spécifié dans le champ de saisie précédent

Remarque : pour saisir un mot de passe, cliquez sur le bouton avec un losange et un point d'interrogation à droite du champ de saisie et choisissez si vous souhaitez enregistrer le mot de passe pour tous les utilisateurs de l'ordinateur ou uniquement pour cet utilisateur, ou si vous devez le demander à chaque connexion.

Vous devez définir des propriétés de connexion supplémentaires - le bouton « Avancé » :
![Configuration des paramètres PPTP (partie 2) - Bouton "Avancé"](pptp-03.png "Paramètres (partie 2) - Bouton "Avancé"")

  • Cochez "Utiliser le cryptage MPPE".

En appuyant sur les boutons Postuler - Enregistrer pour terminer la création de la connexion.

Connexion à votre réseau domestique - dans la barre d'état système, cliquez sur l'icône du réseau et sélectionnez la connexion VPN précédemment créée.
Si la connexion réussit, l'icône réseau dans la barre d'état système changera d'apparence :
vpn connecté

Si rien ne se passe lors de la connexion, l'icône du réseau tourne et revient à sa forme d'origine - regardez sudo tail -n 30 /var/log/syslog côté client, et sur le "Journal système" du routeur pour les erreurs côté serveur.

19. Résolution du problème dans Syslog sur le routeur « cryptage mppe requis, mais rejeté, terminer », sur le client « LCP terminé par un homologue » lors de la connexion à l'aide de NetworkManager

Dans les paramètres de connexion NetworkManager, cliquez sur "Avancé" et activez le cryptage MPPE, comme dans l'image ci-dessus. (Cochez "Utiliser le cryptage MPPE").


Sources :



ПосDernière modification : 03/06/2024 - ajout du paragraphe n°9 "9. Activation des modules du noyau Linux et mise en place d'un pare-feu sur le client" et du dernier paragraphe n°19 (en cas d'erreur de connexion via NetworkManager), la numérotation des paragraphes a été modifiée.



Publications connexes