FAQ Instructions simples pour travailler avec le service Profitserver
Entrée FAQ Configuration du serveur VPN sous Linux : PPTP ou OpenVPN ?

Configuration du serveur VPN sous Linux : PPTP ou OpenVPN ?


De nos jours, la technologie VPN gagne en popularité. Les utilisateurs ordinaires utilisent un VPN pour accéder à Internet en toute sécurité. Il permet également de contourner les sites web et services bloqués localement et de se protéger contre d'éventuels comportements malveillants externes. Lorsque vous vous connectez à un serveur VPN, un tunnel sécurisé relie votre ordinateur au serveur, inaccessible de l'extérieur. Le serveur VPN devient alors votre point d'accès à Internet. Il existe de nombreux services VPN, gratuits ou payants, mais s'ils ne vous conviennent pas, vous pouvez toujours configurer votre propre serveur VPN.

Pour exécuter votre propre VPN, vous devez louer un serveur VPSIl existe différents logiciels permettant de créer une connexion VPN. Ils diffèrent par les systèmes d'exploitation pris en charge et les algorithmes utilisés. Nous allons examiner deux approches indépendantes pour configurer un serveur VPN. La première repose sur le protocole PPTP, déjà considéré comme obsolète et peu sécurisé, mais très simple à configurer. L'autre utilise le logiciel moderne et sécurisé OpenVPN, mais nécessite l'installation d'une application cliente tierce et une configuration plus approfondie.

Dans notre environnement de test, nous utiliserons un serveur virtuel fonctionnant sous Ubuntu Server 18.04. Le pare-feu sera désactivé sur le serveur, car sa configuration mérite un article spécifique. Nous décrirons le processus d'installation sous Windows 10.

Préparation

Quel que soit le serveur VPN choisi, l'accès à Internet sera configuré de manière intégrée au système d'exploitation. Pour accéder à Internet via une interface de service externe, vous devez autoriser la transmission de paquets entre les interfaces et configurer la traduction d'adresses réseau.

Pour activer la redirection de paquets, ouvrez le fichier « /etc/sysctl.conf » et changer « net.ipv4.ip_forward » valeur du paramètre dans 1.

activer le transfert de paquets pour la configuration VPN

Pour appliquer les modifications sans redémarrer l'ordinateur, exécutez la commande

sudo sysctl -p /etc/sysctl.conf

La traduction d'adresse réseau est configurée au moyen de iptables. Tout d’abord, vérifiez le nom de votre interface réseau externe en exécutant la commande "Afficher le lien IP" - vous en aurez besoin à l'étape suivante. Notre nom est « ens3 ».

émission de lien IP

Activez la traduction d’adresses réseau sur votre interface externe pour tous les nœuds du réseau local.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Notez que vous devez spécifier le vrai nom de l'interface de votre serveur, il peut être différent du nôtre.

Par défaut, toutes les règles créées par iptables sont réinitialisées après le redémarrage du serveur. Pour éviter cela, utilisez « iptables-persistent » utilitaire. Installez le paquet suivant :

sudo apt install iptables-persistent

Au cours de l'installation, une fenêtre de configuration vous proposera d'enregistrer les règles iptables actuelles. Les règles étant déjà définies, il vous suffit de confirmer et de cliquer sur "Oui" deux fois. Désormais, les règles seront appliquées automatiquement après le redémarrage du serveur.

Activer la traduction d'adresse

serveur PPTP

Configuration du serveur

Installer le paquet :

sudo apt install pptpd

Une fois l'installation terminée, ouvrez le fichier « /etc/pptpd.conf » dans n'importe quel éditeur de texte et modifiez-le comme ceci :

option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses

Après cela, éditez le fichier « /etc/ppp/pptpd-options »La plupart des paramètres sont définis par défaut.

#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd

À l'étape suivante, vous devrez créer un enregistrement pour les connexions client. Imaginons que vous souhaitiez ajouter un utilisateur. « utilisateur vpn » avec mot de passe "1" et autorisez-lui l'adressage dynamique. Ouvrez le fichier « /etc/ppp/chap-secrets » et ajoutez la ligne suivante avec les paramètres de l'utilisateur à la fin du fichier :

vpnuser pptpd 1 *

« pptpd » la valeur est le nom du service que nous avons spécifié dans le fichier « pptpd-options ». Au lieu de "*" Vous pouvez spécifier une adresse IP fixe. Le fichier résultant « chap-secrets » Devrait ressembler à ceci:

Configuration du serveur VPN

Pour appliquer les paramètres, réinitialisez le pptpd service et l'ajouter au chargement automatique.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

La configuration du serveur est terminée.

Paramétrage client

Open "Début" - "Paramètres" - Réseau & Internet - «VPN» et cliquez sur « Ajouter une connexion VPN »

Configurer le client pour la connexion VPN

Entrez les paramètres de connexion dans la fenêtre ouverte et cliquez sur "Sauvegarder"

  • Fournisseur VPN : « Windows (intégré) »
  • Nom de la connexion : « vpn_connect » (vous pouvez choisir n’importe quel nom)
  • Nom ou adresse du serveur : (précisez l'adresse IP externe du serveur)
  • Type de VPN : « Auto »
  • Type d'informations de connexion : « Nom d'utilisateur et mot de passe »
  • Nom d'utilisateur: utilisateur VPN (nom spécifié dans le fichier « chap-secrets » sur le serveur)
  • Mot de passe: 1 (comme dans le fichier « chap-secrets »)

Après avoir enregistré les paramètres, la nouvelle connexion VPN s'affichera dans la fenêtre. Faites un clic gauche sur la connexion et sélectionnez "Connect". En cas de connexion réussie, vous verrez "Lié" état.

Ajout d'une connexion VPN

Dans les options, vous trouverez les adresses internes du client et du serveur. Champ « Adresse de destination » affiche l'adresse du serveur externe.

Comment configurer un serveur VPN par vous-même

Une fois connecté, l'adresse IP interne du serveur, 172.16.0.1 dans notre cas, devient la passerelle par défaut pour tous les paquets sortants.

Vérifier l'adresse IP externe

En utilisant n'importe quel service en ligne, vous pouvez vous assurer que l'adresse IP externe de l'ordinateur est désormais la même que l'adresse IP de votre serveur VPN.

OpenVPN serveur

Configuration du serveur

Promouvons le niveau d'autorisations de l'utilisateur actuel car pour notre configuration ultérieure, nous aurons besoin d'un accès root.

sudo -s

Installez tous les paquets nécessaires. Nous aurons besoin « Easy-RSA » paquet pour gérer les clés de chiffrement.

apt install openvpn easy-rsa iptables-persistent

Autoriser les connexions entrantes sur le port 1194 via le protocole UDP et appliquer les règles iptables.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

Créez un répertoire avec les fichiers copiés à partir du package « Easy-RSA » et naviguez-y.

make-cadir ~/openvpn

cd ~/openvpn

Générer une infrastructure à clé publique (PKI).

./easyrsa init-pki

Générer le certificat racine de l'autorité de certification (CA).

./easyrsa build-ca

Lors de la création, vous serez invité à définir et à mémoriser un mot de passe. Vous devrez également répondre à des questions et saisir des informations sur le propriétaire de la clé. Vous pouvez conserver les valeurs par défaut entre crochets. Appuyez sur « Entrée » pour finaliser la saisie.

Générez une clé privée et une demande de certificat. Spécifiez un nom arbitraire comme argument ; dans notre cas, « serveur-vpn ».

./easyrsa gen-req vpn-server nopass

Laissez la valeur Nom commun par défaut.

Signez la demande de certificat de serveur générée.

./easyrsa sign-req server vpn-server

À cette étape, répondez « oui » pour confirmer la signature, puis saisissez le mot de passe qui a été créé lors de la génération du certificat racine.

Générer des paramètres Diffie-Hellman. Ces paramètres permettent l'échange sécurisé de clés entre le serveur et le client.

./easyrsa gen-dh

Tous les fichiers nécessaires ont été générés. Créons un dossier « keys » dans le répertoire de travail d'OpenVPN pour stocker les clés et y copier les fichiers créés.

mkdir /etc/openvpn/keys

sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys

Configurer NAT en utilisant iptables règles. Créez un fichier nommé nat et ouvrez-le pour le modifier dans le /etc/openvpn/ répertoire.

#!/bin/sh

# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT

iptables -A INPUT -i tun0 -j ACCEPT

# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP

# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP

sudo netfilter-persistent save

Enregistrez le fichier et rendez-le exécutable.

sudo chmod 755 /etc/openvpn/nat

Copiez le modèle de configuration du serveur.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

Ouvrez le fichier « /etc/openvpn/server.conf » pour l'édition, assurez-vous qu'il contient les lignes suivantes et modifiez-les si nécessaire :

#Port, protocol, and interface

port 1194

proto udp

dev tun
#Path to the encryption keys

ca /etc/openvpn/keys/ca.crt

cert /etc/openvpn/keys/vpn-server.crt

key /etc/openvpn/keys/vpn-server.key

dh /etc/openvpn/keys/dh.pem

#SHA256 Hashing Algorithm

auth SHA256
#Switching off additional encryption

#tls-auth ta.key 0
#Network parameters

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.

keepalive 10 120
#Set up AES-256 encryption for the tunnel.

cipher AES-256-GCM
#Demoting the service OpenVPN after launch

user nobody

group nogroup
#Switching on parameters saving after reboot

persist-key

persist-tun
#Set log verbosity

verb 3
#Redirecting logs

log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.

up /etc/openvpn/nat

Activer la redirection du trafic sur le serveur.

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

Démarrez OpenVPN pour appliquer la configuration.

systemctl restart openvpn@server

La configuration du serveur est terminée !

Paramétrage client

Accédez au site officiel d'OpenVPN «https://openvpn.net», allez à la « COMMUNAUTÉ » .

Votre projet officiel est « https://openvpn.net », puis dans la section « COMMUNAUTÉ ».

Faites défiler vers le bas et téléchargez le programme d'installation correspondant à la version de votre système d'exploitation. Dans notre cas, il s'agit de Windows 11 ARM64.

Il s'agit d'un outil professionnel et d'un installateur spécialisé pour votre système d'exploitation. En ce moment, c'est Windows 11 ARM64.

Installez l'application en laissant tous les paramètres par défaut.

À l'étape suivante, vous devrez préparer le fichier suivant sur le serveur et le transférer sur l'ordinateur client :

  • clés publiques et privées ;
  • copie de la clé du centre de certification ;
  • modèle de fichier de configuration.

Connectez-vous au serveur, élevez les privilèges et accédez à notre répertoire créé "~/openvpn".

sudo -s

cd ~/openvpn

Générez une clé privée et une demande de certificat pour le client. Spécifiez un nom arbitraire comme argument ; dans notre cas, il s'agit de « client1 ».

./easyrsa gen-req client1 nopass

Saisissez le mot de passe que nous avons défini lors de la création du certificat racine et laissez la valeur Nom commun par défaut.

Il s'agit d'un mot que vous pouvez utiliser pour obtenir un certificat de licence et obtenir le nom commun pour l'enregistrement.

Signez la demande de certificat client générée.

./easyrsa sign-req client client1

À cette étape, répondez « oui » pour confirmer la signature, puis saisissez le mot de passe qui a été créé lors de la génération du certificat racine.

Il s'agit d'une question de réponse "oui" pour la prochaine étape, après votre discours, qui est en train de devenir membre de votre famille. certificat.

Pour plus de commodité, créons un dossier nommé « client1 » dans le répertoire personnel et copions-y tous les fichiers destinés à être transférés vers l'ordinateur client.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

Copiez le modèle de fichier de configuration client dans le même répertoire. Modifiez l'extension du fichier en « .ovpn » pendant la copie.

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

Changer le propriétaire du répertoire et de tous les fichiers « ~/client1/ » pour pouvoir les distribuer au client. Faisons « Mihail » le propriétaire dans notre cas.

chown -R mihail:mihail ~/client1

Accédez à l'ordinateur client et copiez le contenu du « ~/client1/ » dossier. Vous pouvez le faire à l'aide de « PSCP » utilitaire, qui va avec Putty.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

Vous pouvez stocker des fichiers clés « ca.crt », « client1.crt », « client1.key » où vous voulez. Dans notre cas, ils se trouvent dans ce dossier. « c:\Program Files\OpenVPN\keys », et nous modélisons le fichier de configuration « client.ovpn » into the « c:\Program Files\OpenVPN\config » répertoire.

Passons maintenant à la configuration du client. Ouvrez le fichier « c:\Program Files\OpenVPN\config\client.ovpn » dans un éditeur de texte et modifiez les lignes suivantes :

#announce that this is the client

client
#interface and protocol just like on the server

dev tun

proto udp
#IP address of the server and port

remote ip_address 1194
#saving parameters after reload

persist-key

persist-tun
#key paths

ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”

cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”

key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification

remote-cert-tls server
#disable extra encryption

#tls-auth ta.key 1

cipher AES-256-CBC

auth-nocache

verb 3

Laissez le reste intact.

Enregistrez le fichier et lancez l'application cliente « Interface graphique OpenVPN ».

Configuration VPN terminée

Faites un clic droit sur l'icône de l'application dans la barre des tâches et choisissez "Connect". Si la connexion est réussie, l'icône deviendra verte.

Utilisez n’importe quel service en ligne pour vous assurer que votre adresse IP publique a changé et est désormais la même que l’adresse IP du serveur.

❮ Article précédent Comment configurer Wireguard VPN sur votre serveur
Article suivant ❯ Configuration du serveur FTP

Demandez-nous des informations sur VPS

Nous sommes toujours prêts à répondre à vos questions à toute heure du jour ou de la nuit.