Différences entre versions de « Mettre en place un VPN L2TP/IPSEC »
m (Robot : Remplacement de texte automatique -serveur +{{Template:Serveur}}) |
|||
(11 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | <span data-link_translate_fr_title="Mettre en place un VPN L2TP/IPSEC" data-link_translate_fr_url="Mettre en place un VPN L2TP/IPSEC"></span>[[:fr:Mettre en place un VPN L2TP/IPSEC]][[fr:Mettre en place un VPN L2TP/IPSEC]] | ||
+ | <span data-link_translate_en_title="Establish a L2TP/IPSEC VPN" data-link_translate_en_url="Establish a L2TP/IPSEC VPN"></span>[[:en:Establish a L2TP/IPSEC VPN]][[en:Establish a L2TP/IPSEC VPN]] | ||
+ | <span data-link_translate_es_title="Establecer una VPN de L2TP/IPSEC" data-link_translate_es_url="Establecer una VPN de L2TP/IPSEC"></span>[[:es:Establecer una VPN de L2TP/IPSEC]][[es:Establecer una VPN de L2TP/IPSEC]] | ||
+ | <span data-link_translate_pt_title="Estabelecer uma VPN L2TP/IPSEC" data-link_translate_pt_url="Estabelecer uma VPN L2TP/IPSEC"></span>[[:pt:Estabelecer uma VPN L2TP/IPSEC]][[pt:Estabelecer uma VPN L2TP/IPSEC]] | ||
+ | <span data-link_translate_it_title="Stabilire una connessione VPN L2TP/IPSEC" data-link_translate_it_url="Stabilire una connessione VPN L2TP/IPSEC"></span>[[:it:Stabilire una connessione VPN L2TP/IPSEC]][[it:Stabilire una connessione VPN L2TP/IPSEC]] | ||
+ | <span data-link_translate_nl_title="Stellen een L2TP/IPSEC VPN" data-link_translate_nl_url="Stellen een L2TP/IPSEC VPN"></span>[[:nl:Stellen een L2TP/IPSEC VPN]][[nl:Stellen een L2TP/IPSEC VPN]] | ||
+ | <span data-link_translate_de_title="Etablieren Sie ein L2TP/IPSEC-VPN" data-link_translate_de_url="Etablieren Sie ein L2TP/IPSEC-VPN"></span>[[:de:Etablieren Sie ein L2TP/IPSEC-VPN]][[de:Etablieren Sie ein L2TP/IPSEC-VPN]] | ||
+ | <span data-link_translate_zh_title="建立 L2TP/IPSEC VPN" data-link_translate_zh_url="建立 L2TP/IPSEC VPN"></span>[[:zh:建立 L2TP/IPSEC VPN]][[zh:建立 L2TP/IPSEC VPN]] | ||
+ | <span data-link_translate_ar_title="إنشاء L2TP/IPSEC VPN" data-link_translate_ar_url="إنشاء L2TP/IPSEC VPN"></span>[[:ar:إنشاء L2TP/IPSEC VPN]][[ar:إنشاء L2TP/IPSEC VPN]] | ||
+ | <span data-link_translate_ja_title="L2TP と IPSEC VPN を確立します。" data-link_translate_ja_url="L2TP と IPSEC VPN を確立します。"></span>[[:ja:L2TP と IPSEC VPN を確立します。]][[ja:L2TP と IPSEC VPN を確立します。]] | ||
+ | <span data-link_translate_pl_title="Ustanowić połączenie sieci VPN L2TP/IPSEC" data-link_translate_pl_url="Ustanowić połączenie sieci VPN L2TP/IPSEC"></span>[[:pl:Ustanowić połączenie sieci VPN L2TP/IPSEC]][[pl:Ustanowić połączenie sieci VPN L2TP/IPSEC]] | ||
+ | <span data-link_translate_ru_title="Установить L2TP/IPSEC VPN" data-link_translate_ru_url="Установить L2TP/IPSEC VPN"></span>[[:ru:Установить L2TP/IPSEC VPN]][[ru:Установить L2TP/IPSEC VPN]] | ||
+ | <span data-link_translate_ro_title="Stabilească un VPN L2TP/IPSEC" data-link_translate_ro_url="Stabilească un VPN L2TP/IPSEC"></span>[[:ro:Stabilească un VPN L2TP/IPSEC]][[ro:Stabilească un VPN L2TP/IPSEC]] | ||
+ | <span data-link_translate_he_title="הקמת VPN של L2TP/IPSEC" data-link_translate_he_url="הקמת VPN של L2TP/IPSEC"></span>[[:he:הקמת VPN של L2TP/IPSEC]][[he:הקמת VPN של L2TP/IPSEC]] | ||
<span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="ro"></span><span data-link_translate="pl"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><!-- Début de l'article. Placez votre texte ci-après et n'hésitez pas à personnaliser les chapitres selon votre besoin --> | <span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_translate="ja"></span><span data-link_translate="ar"></span><span data-link_translate="zh"></span><span data-link_translate="ro"></span><span data-link_translate="pl"></span><span data-link_translate="de"></span><span data-link_translate="nl"></span><span data-link_translate="it"></span><span data-link_translate="pt"></span><span data-link_translate="es"></span><span data-link_translate="en"></span><!-- Début de l'article. Placez votre texte ci-après et n'hésitez pas à personnaliser les chapitres selon votre besoin --> | ||
− | ==Introduction== <!--T:1--> | + | {{#seo: |
− | Un VPN (Virtual Private Network) est un système permettant de créer un lien direct entre des ordinateurs distants. On utilise notamment ce terme dans le milieu de la dématérialisation fiscale et dans le travail à distance, ainsi que pour l'accès à des structures de type {{Template:Cloud computing}}. L'avantage du L2TP (Layer 2 Tunelling Protocol) réside dans l'utilisation d'une clé | + | |title=Cloud computing |
+ | |title_mode=append | ||
+ | |keywords=these,are,your,keywords | ||
+ | |description= Mettre en place un VPN L2TP/IPSEC cloud computing | ||
+ | |image=Uploaded_file.png | ||
+ | |image_alt=Wiki Logo | ||
+ | }} | ||
+ | |||
+ | ==Introduction : Structures de type cloud computing== <!--T:1--> | ||
+ | Un VPN (Virtual Private Network) est un système '''cloud computing''' permettant de créer un lien direct entre des ordinateurs distants. On utilise notamment ce terme dans le milieu de la dématérialisation fiscale et dans le travail à distance, ainsi que pour l'accès à des structures de type {{Template:Cloud computing}}. L'avantage du L2TP (Layer 2 Tunelling Protocol) réside dans l'utilisation d'une clé pré partagée en plus des identifiants de connexion habituels. A cela s'ajoute IPSEC, une technologie d'encapsulation cryptée dans la trame IP. | ||
==Prérequis== <!--T:2--> | ==Prérequis== <!--T:2--> | ||
− | Pour suivre ce tuto vous devez disposer de:<br/> | + | Pour suivre ce tuto ''cloud computing'' vous devez disposer de :<br/> |
− | * Une machine sous une distribution Linux (Debian 8, Fedora, CentOS, Ubuntu, Raspberry Pi | + | * Une machine cloud computing sous une distribution Linux (Debian 8, Fedora, CentOS, Ubuntu,Raspberry Pi [https://www.raspberrypi-france.fr/] ...) ''Ne fonctionne pas sous Debian 8 à cause des repository d'OpenSwan qui n'existent plus''<br/> |
* Connaître votre adresse ip publique, si vous ne la connaissez pas allez [http://http://www.mon-ip.com/ ici!]<br/> | * Connaître votre adresse ip publique, si vous ne la connaissez pas allez [http://http://www.mon-ip.com/ ici!]<br/> | ||
==Tutoriel== <!--T:3--> | ==Tutoriel== <!--T:3--> | ||
− | Tout d'abord, loguez vous en root (ou via un utilisateur qui a les droits superuser). | + | Tout d'abord, loguez vous en root (ou via un utilisateur qui a les droits superuser). Vous pouvez utiliser Putty pour vous connecter à une machine à distance via SSH ou ouvrez simplement un terminal si vous avez accès à l'interface graphique de votre machine. |
===Update et installation des paquets=== | ===Update et installation des paquets=== | ||
− | Tout d'abord, mettez à jour votre machine et installez les repository nécessaires:<br/> | + | Tout d'abord, mettez à jour votre machine et installez les repository nécessaires :<br/> |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt-get update && apt-get upgrade -y | apt-get update && apt-get upgrade -y | ||
Ligne 20 : | Ligne 43 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ''OpenSwan va vous poser des questions, répondez y avec les valeurs par défaut'' | + | ''OpenSwan va vous poser des questions, répondez y avec les valeurs par défaut''. |
<br/><br/> | <br/><br/> | ||
===Ajout des règles au firewall=== | ===Ajout des règles au firewall=== | ||
− | Ensuite, nous allons ajouter une | + | Ensuite, nous allons ajouter une règle à iptables pour autoriser la trafic du VPN (remplacez %SERVERIP% par l'ip de votre {{Template:Serveur}}) : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
iptables -t nat -A POSTROUTING -j SNAT --to-source %SERVERIP% -o eth0 | iptables -t nat -A POSTROUTING -j SNAT --to-source %SERVERIP% -o eth0 | ||
Ligne 30 : | Ligne 53 : | ||
<br/> | <br/> | ||
− | Puis | + | Puis exécutez les commandes suivantes pour activer le routing des paquets IP: |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo "net.ipv4.ip_forward = 1" | tee -a /etc/sysctl.conf | echo "net.ipv4.ip_forward = 1" | tee -a /etc/sysctl.conf | ||
Ligne 43 : | Ligne 66 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Rendons les persistantes au redémarrage de la machine: | + | Rendons les persistantes au redémarrage de la machine : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
nano /etc/rc.local | nano /etc/rc.local | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Puis, ajoutez à la fin juste avant le '''exit 0''' : | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done | for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done | ||
Ligne 58 : | Ligne 81 : | ||
<br/> | <br/> | ||
− | On crée un nouveau fichier de configuration ipsec: | + | On crée un nouveau fichier de configuration ipsec : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mv /etc/ipsec.conf /etc/ipsec.conf.bak && nano /etc/ipsec.conf | mv /etc/ipsec.conf /etc/ipsec.conf.bak && nano /etc/ipsec.conf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Puis collez-y ceci : ''En n'oubliant pas de remplacer %SERVERIP% par l'adresse IP du {{Template:Serveur}}'' | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
version 2 # conforms to second version of ipsec.conf specification | version 2 # conforms to second version of ipsec.conf specification | ||
Ligne 122 : | Ligne 145 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | On crée ensuite le ''preshared secret'' (la clé | + | On crée ensuite le ''preshared secret'' (la clé pré partagée) : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
nano /etc/ipsec.secrets | nano /etc/ipsec.secrets | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Puis entrez cette ligne : | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
%SERVERIP% %any: PSK "VotreClePlusOuMoinsSecurisee" | %SERVERIP% %any: PSK "VotreClePlusOuMoinsSecurisee" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Pensez à | + | Pensez à remplacer %SERVERIP% par l'IP de votre {{Template:Serveur}}. Si vous séchez pour la création de votre clé vous pouvez utilisez la commande suivante : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
openssl rand -hex 30 | openssl rand -hex 30 | ||
Ligne 136 : | Ligne 159 : | ||
<br/> | <br/> | ||
− | On vérifie que tout se passe bien, vous utilisez donc cette commande: | + | On vérifie que tout se passe bien, vous utilisez donc cette commande : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ipsec verify | ipsec verify | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Et vous devez obtenir : | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Checking your system to see if IPsec got installed and started correctly: | Checking your system to see if IPsec got installed and started correctly: | ||
Ligne 161 : | Ligne 184 : | ||
===Configuration de xl2tpd=== | ===Configuration de xl2tpd=== | ||
− | Commençons par éditer un nouveau fichier de configuration: | + | Commençons par éditer un nouveau fichier de configuration : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mv /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bak && nano /etc/xl2tpd/xl2tpd.conf | mv /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bak && nano /etc/xl2tpd/xl2tpd.conf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Puis collez-y ceci : | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
[global] | [global] | ||
Ligne 188 : | Ligne 211 : | ||
===Configuration de PPP=== | ===Configuration de PPP=== | ||
− | Pour cette partie, nous allons de nouveau créer un nouveau fichier de configuration ''(trop de nouveau dans une seule phrase :3)'': | + | Pour cette partie, nous allons de nouveau créer un nouveau fichier de configuration ''(trop de nouveau dans une seule phrase :3)'' : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Ligne 194 : | Ligne 217 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Puis insérez-y ceci : | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
require-mschap-v2 | require-mschap-v2 | ||
Ligne 211 : | Ligne 234 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Ici, j'ai utilisé les DNS publics de Google, libre à vous de les modifier et d'utiliser ceux de votre choix! ;) | + | Ici, j'ai utilisé les DNS publics de Google, libre à vous de les modifier et d'utiliser ceux de votre choix ! ;) |
===Ajout des utilisateurs=== | ===Ajout des utilisateurs=== | ||
− | ENFIN! Cette étape cruciale va vous permettre de | + | ENFIN ! Cette étape cruciale va vous permettre de définir les login et les mots de passe des utilisateurs de votre vpn, modifiez simplement ce fichier : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
nano /etc/ppp/chap-secrets | nano /etc/ppp/chap-secrets | ||
Ligne 224 : | Ligne 247 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br/> | <br/> | ||
− | '''ATTENTION: ce fichier est sensible à la casse, si vous mettez une majuscule, vous devrez la conserver lorsque vous taperez votre login ou mot de passe.''' | + | '''ATTENTION : ce fichier est sensible à la casse, si vous mettez une majuscule, vous devrez la conserver lorsque vous taperez votre login ou mot de passe.''' |
<br/><br/> | <br/><br/> | ||
− | ===Pour finir on redémarre=== | + | ===Pour finir on redémarre : === |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
/etc/init.d/ipsec restart && /etc/init.d/xl2tpd restart | /etc/init.d/ipsec restart && /etc/init.d/xl2tpd restart | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | Voilà comment vous pouvez avoir l'accès à votre structures de type cloud computing | ||
<!-- Fin de l'article --> | <!-- Fin de l'article --> | ||
<br /><br /> | <br /><br /> | ||
Ligne 242 : | Ligne 266 : | ||
<!-- Placez ci-dessous la ou les catégories auxquelles se rapporte votre article. Ex: [[Catégorie:VPN]] [[Catégorie:Linux]] --> | <!-- Placez ci-dessous la ou les catégories auxquelles se rapporte votre article. Ex: [[Catégorie:VPN]] [[Catégorie:Linux]] --> | ||
− | [[Catégorie:VPN]] [[Catégorie:Linux]] | + | [[Catégorie:VPN]] [[Catégorie:Linux]] [[Catégorie:Serveur VPS]] |
Version actuelle datée du 1 janvier 2021 à 03:52
fr:Mettre en place un VPN L2TP/IPSEC en:Establish a L2TP/IPSEC VPN es:Establecer una VPN de L2TP/IPSEC pt:Estabelecer uma VPN L2TP/IPSEC it:Stabilire una connessione VPN L2TP/IPSEC nl:Stellen een L2TP/IPSEC VPN de:Etablieren Sie ein L2TP/IPSEC-VPN zh:建立 L2TP/IPSEC VPN ar:إنشاء L2TP/IPSEC VPN ja:L2TP と IPSEC VPN を確立します。 pl:Ustanowić połączenie sieci VPN L2TP/IPSEC ru:Установить L2TP/IPSEC VPN ro:Stabilească un VPN L2TP/IPSEC he:הקמת VPN של L2TP/IPSEC
Introduction : Structures de type cloud computing
Un VPN (Virtual Private Network) est un système cloud computing permettant de créer un lien direct entre des ordinateurs distants. On utilise notamment ce terme dans le milieu de la dématérialisation fiscale et dans le travail à distance, ainsi que pour l'accès à des structures de type cloud computing. L'avantage du L2TP (Layer 2 Tunelling Protocol) réside dans l'utilisation d'une clé pré partagée en plus des identifiants de connexion habituels. A cela s'ajoute IPSEC, une technologie d'encapsulation cryptée dans la trame IP.
Prérequis
Pour suivre ce tuto cloud computing vous devez disposer de :
- Une machine cloud computing sous une distribution Linux (Debian 8, Fedora, CentOS, Ubuntu,Raspberry Pi [1] ...) Ne fonctionne pas sous Debian 8 à cause des repository d'OpenSwan qui n'existent plus
- Connaître votre adresse ip publique, si vous ne la connaissez pas allez ici!
Tutoriel
Tout d'abord, loguez vous en root (ou via un utilisateur qui a les droits superuser). Vous pouvez utiliser Putty pour vous connecter à une machine à distance via SSH ou ouvrez simplement un terminal si vous avez accès à l'interface graphique de votre machine.
Update et installation des paquets
Tout d'abord, mettez à jour votre machine et installez les repository nécessaires :
apt-get update && apt-get upgrade -y
apt-get install openswan xl2tpd ppp lsof
OpenSwan va vous poser des questions, répondez y avec les valeurs par défaut.
Ajout des règles au firewall
Ensuite, nous allons ajouter une règle à iptables pour autoriser la trafic du VPN (remplacez %SERVERIP% par l'ip de votre serveur) :
iptables -t nat -A POSTROUTING -j SNAT --to-source %SERVERIP% -o eth0
Puis exécutez les commandes suivantes pour activer le routing des paquets IP:
echo "net.ipv4.ip_forward = 1" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.accept_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.send_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.rp_filter = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.accept_source_route = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.send_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.icmp_ignore_bogus_error_responses = 1" | tee -a /etc/sysctl.conf
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
sysctl -p
Rendons les persistantes au redémarrage de la machine :
nano /etc/rc.local
Puis, ajoutez à la fin juste avant le exit 0 :
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
iptables -t nat -A POSTROUTING -j SNAT --to-source %SERVERIP% -o eth+
Mise en place d'IPSEC
On crée un nouveau fichier de configuration ipsec :
mv /etc/ipsec.conf /etc/ipsec.conf.bak && nano /etc/ipsec.conf
Puis collez-y ceci : En n'oubliant pas de remplacer %SERVERIP% par l'adresse IP du serveur
version 2 # conforms to second version of ipsec.conf specification
config setup
dumpdir=/var/run/pluto/
#in what directory should things started by setup (notably the Pluto daemon) be allowed to dump core?
nat_traversal=yes
#whether to accept/offer to support NAT (NAPT, also known as "IP Masqurade") workaround for IPsec
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v6:fd00::/8,%v6:fe80::/10
#contains the networks that are allowed as subnet= for the remote client. In other words, the address ranges that may live behind a NAT router through which a client connects.
protostack=netkey
#decide which protocol stack is going to be used.
force_keepalive=yes
keep_alive=60
# Send a keep-alive packet every 60 seconds.
conn L2TP-PSK-noNAT
authby=secret
#shared secret. Use rsasig for certificates.
pfs=no
#Disable pfs
auto=add
#the ipsec tunnel should be started and routes created when the ipsec daemon itself starts.
keyingtries=3
#Only negotiate a conn. 3 times.
ikelifetime=8h
keylife=1h
ike=aes256-sha1,aes128-sha1,3des-sha1
phase2alg=aes256-sha1,aes128-sha1,3des-sha1
# https://lists.openswan.org/pipermail/users/2014-April/022947.html
# specifies the phase 1 encryption scheme, the hashing algorithm, and the diffie-hellman group. The modp1024 is for Diffie-Hellman 2. Why 'modp' instead of dh? DH2 is a 1028 bit encryption algorithm that modulo's a prime number, e.g. modp1028. See RFC 5114 for details or the wiki page on diffie hellmann, if interested.
type=transport
#because we use l2tp as tunnel protocol
left=%SERVERIP%
#fill in server IP above
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=10
# Dead Peer Dectection (RFC 3706) keepalives delay
dpdtimeout=20
# length of time (in seconds) we will idle without hearing either an R_U_THERE poll from our peer, or an R_U_THERE_ACK reply.
dpdaction=clear
# When a DPD enabled peer is declared dead, what action should be taken. clear means the eroute and SA with both be cleared.
On crée ensuite le preshared secret (la clé pré partagée) :
nano /etc/ipsec.secrets
Puis entrez cette ligne :
%SERVERIP% %any: PSK "VotreClePlusOuMoinsSecurisee"
Pensez à remplacer %SERVERIP% par l'IP de votre serveur. Si vous séchez pour la création de votre clé vous pouvez utilisez la commande suivante :
openssl rand -hex 30
On vérifie que tout se passe bien, vous utilisez donc cette commande :
ipsec verify
Et vous devez obtenir :
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.38/K3.13.0-24-generic (netkey)
Checking for IPsec support in kernel [OK]
SAref kernel support [N/A]
NETKEY: Testing XFRM related proc values [OK]
[OK]
[OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for 'ip' command [OK]
Checking /bin/sh is not /bin/dash [WARNING]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]
Configuration de xl2tpd
Commençons par éditer un nouveau fichier de configuration :
mv /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bak && nano /etc/xl2tpd/xl2tpd.conf
Puis collez-y ceci :
[global]
ipsec saref = yes
saref refinfo = 30
;debug avp = yes
;debug network = yes
;debug state = yes
;debug tunnel = yes
[lns default]
ip range = 172.16.1.30-172.16.1.100
local ip = 172.16.1.1
refuse pap = yes
require authentication = yes
;ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
Configuration de PPP
Pour cette partie, nous allons de nouveau créer un nouveau fichier de configuration (trop de nouveau dans une seule phrase :3) :
mv /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.bak && nano /etc/ppp/options.xl2tpd
Puis insérez-y ceci :
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
auth
mtu 1200
mru 1000
crtscts
hide-password
modem
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
Ici, j'ai utilisé les DNS publics de Google, libre à vous de les modifier et d'utiliser ceux de votre choix ! ;)
Ajout des utilisateurs
ENFIN ! Cette étape cruciale va vous permettre de définir les login et les mots de passe des utilisateurs de votre vpn, modifiez simplement ce fichier :
nano /etc/ppp/chap-secrets
ci-dessous une ligne typique:
jean l2tpd 0F92E5FC2414101EA *
ATTENTION : ce fichier est sensible à la casse, si vous mettez une majuscule, vous devrez la conserver lorsque vous taperez votre login ou mot de passe.
Pour finir on redémarre :
/etc/init.d/ipsec restart && /etc/init.d/xl2tpd restart
Voilà comment vous pouvez avoir l'accès à votre structures de type cloud computing
Cet article vous a semblé utile ?
Activer l'actualisation automatique des commentaires