Recherche de site Web

Comment créer votre propre serveur VPN IPsec sous Linux


L'utilisation d'un VPN (Virtual Private Network) présente de nombreux avantages, dont certains incluent votre sécurité sur Internet en cryptant votre trafic et en vous aidant à accéder aux contenus/sites/applications Web bloqués depuis n'importe où. Sans oublier que le VPN vous aide également à naviguer sur Internet de manière anonyme.

Dans cet article, vous apprendrez comment configurer rapidement et automatiquement votre propre serveur VPN IPsec/L2TP dans CentOS/RHEL, Ubuntu et Distributions Debian Linux.

Conditions préalables:

  1. Un nouveau CentOS/RHEL ou Ubuntu/Debian VPS (Virtual Private Server) provenant de n'importe quel fournisseur tel que Linode.

Configuration du serveur VPN IPsec/L2TP sous Linux

Pour configurer le serveur VPN, nous utiliserons une merveilleuse collection de scripts shell créés par Lin Song, qui installe Libreswan comme serveur IPsec, et xl2tpd. en tant que fournisseur L2TP. L'offre comprend également des scripts pour ajouter ou supprimer des utilisateurs VPN, mettre à niveau l'installation VPN et bien plus encore.

Tout d'abord, connectez-vous à votre VPS via SSH, puis exécutez les commandes appropriées pour votre distribution pour configurer le serveur VPN. Par défaut, le script générera des informations d'identification VPN aléatoires (clé pré-partagée, nom d'utilisateur VPN et mot de passe) pour vous et les affichera au niveau du serveur. fin de l'installation.

Cependant, si vous souhaitez utiliser vos propres informations d'identification, vous devez d'abord générer un mot de passe et un PSK forts, comme indiqué.

openssl rand -base64 10
openssl rand -base64 16

Ensuite, définissez ces valeurs générées comme décrit dans la commande suivante, toutes les valeurs DOIVENT être placées entre « guillemets simples », comme indiqué.

  • VPN_IPSEC_PSK – Votre clé IPsec pré-partagée.
  • VPN_USER – Votre nom d'utilisateur VPN.
  • VPN_PASSWORD – Votre mot de passe VPN.
---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sh vpnsetup.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sudo sh vpnsetup.sh

Les principaux packages qui seront installés sont bind-utils, net-tools, bison, flex, gcc, libcap-ng-devel, libcurl-devel, libselinux-devel, nspr-devel, nss-devel, pam-devel, xl2tpd, iptables-services, systemd-devel, fipscheck-devel, libevent-devel et fail2ban (pour protéger SSH) et leurs dépendances respectives. Ensuite, il télécharge, compile et installe Libreswan à partir des sources, active et démarre les services nécessaires.

Une fois l'installation terminée, les détails du VPN seront affichés comme indiqué dans la capture d'écran suivante.

Ensuite, vous devez configurer un client VPN, pour les ordinateurs de bureau ou portables dotés d'une interface utilisateur graphique, reportez-vous à ce guide : Comment configurer un client VPN L2TP/Ipsec sous Linux.

Pour ajouter la connexion VPN sur un appareil mobile tel qu'un téléphone Android, accédez à Paramètres –> Réseau et Internet . (ou Sans fil et réseaux –> Plus) –> Avancé –> VPN. Sélectionnez l'option pour ajouter un nouveau VPN. Le type de VPN doit être défini sur IPSec Xauth PSK, puis utiliser la passerelle VPN et les informations d'identification ci-dessus.

Comment ajouter ou supprimer un utilisateur VPN sous Linux

Pour créer un nouvel utilisateur VPN ou mettre à jour un utilisateur VPN existant avec un nouveau mot de passe, téléchargez et utilisez le script add_vpn_user.sh à l'aide de la commande wget suivante.

wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh
sudo sh add_vpn_user.sh 'username_to_add' 'user_password'

Pour supprimer un utilisateur VPN, téléchargez et utilisez le script del_vpn_user.sh.

wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh
sudo sh del_vpn_user.sh 'username_to_delete'

Comment mettre à niveau l'installation de Libreswan sous Linux

Vous pouvez mettre à niveau l'installation de Libreswan à l'aide du script vpnupgrade.sh ou vpnupgrade_centos.sh. Assurez-vous de modifier la variable SWAN_VER avec la version que vous souhaitez installer, dans le script.

---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnupgrade-centos -O vpnupgrade.sh && sh vpnupgrade.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnupgrade -O vpnupgrade.sh && sudo sh  vpnupgrade.sh

Comment désinstaller le serveur VPN sous Linux

Pour désinstaller l'installation VPN, procédez comme suit.

Sur RHEL/CentOS

yum remove xl2tpd

Ensuite, ouvrez le fichier de configuration /etc/sysconfig/iptables, supprimez les règles inutiles et modifiez /etc/sysctl.conf et /etc/rc.local fichier et supprimez les lignes après le commentaire # Ajouté par le script VPN hwdsl2, dans les deux fichiers.

Sur Debian/Ubuntu

sudo apt-get purge xl2tpd

Ensuite, modifiez le fichier de configuration /etc/iptables.rules et supprimez toutes les règles inutiles. De plus, modifiez /etc/iptables/rules.v4 s'il existe.

Modifiez ensuite les fichiers /etc/sysctl.conf et /etc/rc.local, supprimez les lignes après le commentaire # Ajouté par le script VPN hwdsl2 , dans les deux fichiers. Ne supprimez pas exit 0 s'il existe.

Vous pouvez éventuellement supprimer certains fichiers et répertoires créés lors de la configuration du VPN.

rm -f /etc/ipsec.conf* /etc/ipsec.secrets* /etc/ppp/chap-secrets* /etc/ppp/options.xl2tpd* /etc/pam.d/pluto /etc/sysconfig/pluto /etc/default/pluto 
rm -rf /etc/ipsec.d /etc/xl2tpd

Pour configurer un VPN de site à site basé sur IPSec avec Strongswan, consultez nos guides :

  1. Comment configurer un VPN basé sur IPSec avec Strongswan sur Debian et Ubuntu
  2. Comment configurer un VPN basé sur IPSec avec Strongswan sur CentOS/RHEL 8

À ce stade, votre propre serveur VPN est opérationnel. Vous pouvez partager vos questions ou nous faire part de vos commentaires en utilisant le formulaire de commentaires ci-dessous.