Le contenu de cette page est potentiellement obsolète.

Le wiki sert d'archive et certaines pages ne représentent plus la vision actuelle du Parti Pirate. Pour connaître les positions des Pirates, aujourd'hui, vous pouvez consulter :

Et pour toute autre question, vous pouvez nous contacter et discuter avec nous :

contact@partipirate.org | @PartiPirate sur Twitter | Parti Pirate sur Facebook | Discourse (espace libre d'échanges et discussions) | Discord (espace d'échanges instantanés textuel et vocal)

HowToVPN

De Wiki du Parti Pirate
Aller à la navigation Aller à la recherche

Présentation du service

En cours de rédaction

Les Réseaux Privés Virtuels

Dans les réseaux informatiques et les télécommunications, le réseau privé virtuel (Virtual Private Network en anglais, abrégé en VPN) est vu comme une extension des réseaux locaux et préserve la sécurité logique que l'on peut avoir à l'intérieur d'un réseau local. Il correspond en fait à une interconnexion de réseaux locaux via une technique de « tunnel ». On parle de VPN lorsqu'un organisme interconnecte ses sites via une infrastructure partagée avec d'autres organismes.

Un bon compromis consiste à utiliser Internet comme support de transmission en utilisant un protocole de « tunnellisation » (en anglais tunneling), c'est-à-dire encapsulant les données à transmettre de façon chiffrée. On parle alors de VPN pour désigner le réseau ainsi artificiellement créé. Ce réseau est dit virtuel car il relie deux réseaux « physiques » (réseaux locaux) par une liaison non fiable (Internet), et privé car seuls les ordinateurs des réseaux locaux de part et d'autre du VPN peuvent accéder aux données en clair.

Le VPN permet donc d'obtenir une liaison sécurisée à moindre coût, si ce n'est la mise en œuvre des équipements terminaux.

Le VPN vise à apporter certains éléments essentiels dans la transmission de données : l'authentification (et donc l'identification) des interlocuteurs, la confidentialité des données (le chiffrement vise à les rendre inutilisables par quelqu'un d'autre que le destinataire).

(auteur: les contributeurs de wikipédia in Wikipédia - Réseau privé virtuel)

Le réseau VPN du Parti Pirate

Les serveurs du Parti Pirate sont reliés entre eux dans un réseau interne. L'accès VPN vise donc à intégrer des utilisateurs nomades (dit roadwarrior) dans ce réseau interne. Cette intégration permet de fournir un premier niveau de gestion des accès au sein du réseau. Ensuite chaque service spécifie les privilèges de l'utilisateur.

Par exemple, l'utilisateur A a besoin d'un accès SSH (Secure SHell) sur le serveur B et un accès FTP (File Transfer Protocol) sur le serveur C.

  • Dans un premier temps, un certificat OpenVPN est créé pour A afin de lui fournir un accès au réseau interne.
  • Puis chaque serveur B et C définis un accès spécifique qui sera fournit à A
  • A s’intègre dans le réseau interne puis utilise normalement les services de B et C

En outre, des applications spécifiques n'ayant pas de raisons d'être publiquement accessibles (gestion des adhérents par exemple) ne sont disponibles qu'au travers de ce réseau.

Ainsi, ce système présente les avantages suivants:

  • Les données de l'utilisateur nomade à destination du réseau interne sont chiffrées via le VPN.
  • Les applications n'ayant pas besoin d'un accès public ne sont disponibles qu'au travers du VPN
  • Si un accès d'un utilisateur à un service est compromis, le problème reste limité tant que le certificat VPN de l'utilisateur n'est pas compromis.
  • Si un certificat VPN d'un utilisateur est compromis, sa révocation permet de bloquer ses accès aux différents services sur le réseau interne et donc de limiter les effets de ce problème de sécurité.
  • Si le certificat VPN d'un utilisateur est révoqué, il ne dispose plus d'aucun accès aux services du réseau. Toutefois, chaque service doit révoquer l'accès de cet utilisateur.

En revanche, cela nécessite d'installer un logiciel sur le système de l'utilisateur.

OpenVPN

OpenVPN est un logiciel libre permettant de créer un réseau privé virtuel. Il fournit :

  • Un serveur VPN mature et stable
  • Un logiciel client disponible sur de multiple plateforme (Solaris, *BSD, GNU/Linux, Mac OS X, Windows 2000, XP, Vista et 7)

Vous et OpenVPN

Vous aurez besoin d'un accès VPN pour :

  • le site de votre section locale afin d'y effectuer des transferts de fichiers via FTP
  • l'utilisation d'applications spécifiques n'ayant pas vocation à être publique pour des raisons de sécurité.
  • l'administration d'un service sur un des serveurs si cela nécessite un compte système (user Shell avec commande limité sudo) ou si une éventuelle interface de gestion est indépendante du service.
  • l'administration d'un ou plusieurs serveurs

L'impact sur votre machine est faible :

  • cela revient à ajouter une nouvelle carte réseau (virtuelle) et de vous connecter au réseau interne
  • le trafic n'étant pas à destination du réseau interne ne passe pas par le VPN, autrement dit les données de vos activités en ligne habituelles ne passent pas par ce réseau.

Pour éviter toute confusion, les adresses utilisées sont sous la forme partipirate.ppo. Par exemple :


Guides d'installation et d'utilisation

Pré-requis

  • Avoir reçu les 2 fichiers clés (.ovpn et .p12) de la part des administrateurs du VPN (après que votre compte VPN ait été créé) ainsi que, si le fichier p12 a été crypté, le mot de passe de décryptage de ce fichier.

Pour Windows (XP, 7, ...)

  • Télécharger le programme client OpenVPN poru votre PC: http://openvpn.net/index.php/open-source/downloads.html
  • Lancer l'exécutable "openvpn-2.2.2-install" (ou version supérieure)
  • Copier les fichier avec l’extension .p12 et .ovpn dans le dossier "\config" du répertoire d'installation d'OpenVPN (pour moi C:\Program Files (x86)\OpenVPN\config)
  • Lancer le programme OpenVPN GUI (Menu Démarrer-Programmes-OpenVPN). Un icone dans la barre de taches (system-tray) et symbolisant le client OpenVPN a du apparaître. Faire un clic droit dessus et choisir "Connecter". Si il y en avait un mot de passe au fichier p12, il vous sera demandé à ce moment. Renseignez le.
  • A l'issu de cette connection, votre accès au VPN doit etre opérationnel (icone de OpenVPN en vert dans la barre des taches).
  • En cas de problème (si vous n'avez pas l'icon d'OpenVPN en vert dans la barre des taches), fermer complètement OpenVPN (clic droit sur l'icon dans la barre des taches puis Quitter). Ensuite, retourner au menu, faites un clic droit sur le lanceur OpenVPN puis propriétés, onglet compatibilité et cochez "Exécuter ce programme en tant qu'administrateur" puis relancer OpenVPN
  • Pour confirmer que le VPN fonctionne, ouvrez une fenetre DOS et taper la commande
ping chaloupe.partipirate.ppo

Si cela répond avec des lignes du genre

Réponse de 172.16.20.108 : octets=32 temps=27 ms TTL=63
Réponse de 172.16.20.108 : octets=32 temps=29 ms TTL=63
Réponse de 172.16.20.108 : octets=32 temps=25 ms TTL=63

c'est que le VPN fonctionne. Vous avez accès au réseau interne du Parti Pirate. Pour accéder aux outils, il vous faudra toutefois, un compte propre à chaque outil.

Pour Linux

A partir d'un shell (debian, ubuntu, mint)

Installation

  • Installer le paquet OpenVPN et OpenSSL
$ sudo apt-get -y install openvpn openssl
  • Renommer le fichier .ovpn en .conf (filename est à remplacer par le nom du fichier ovpn reçu)
$ mv filename.ovpn filename.conf
  • Copier les fichiers .p12 et .conf dans /etc/openvpn/ et les rendre en accès restreint root
$ sudo chown root:root /etc/openvpn/*.conf 
$ sudo chown root:root /etc/openvpn/*.p12
$ sudo chmod 0600 /etc/openvpn/*.conf 
$ sudo chmod 0600 /etc/openvpn/*.p12
  • Tester la connexion
$ sudo service openvpn restart

Si le fichier p12 a été crypté, le mot de passe sera demandée à chaque connexion.

  • Optionnellement, supprimer le mot de passe demandé à chaque connexion.

L'opération consiste à recréer le fichier .p12 sans mot de passe.

$ sudo cp /etc/openvpn/monfichierp12.p12 /etc/openvpn/monfichierp12.p12.bak
$ sudo openssl pkcs12 -in /etc/openvpn/monfichierp12.p12 -nodes -out temp.pem

Pour la commande suivante, lorsque qu'OpenSSL demande un mot de passe, taper "entrée" en ne saisissant rien.

$ sudo openssl pkcs12 -export -in temp.pem  -out /etc/openvpn/monfichierp12.p12
$ sudo rm -f temp.pem
  • Ajouter la configuration de résolution DNS

En effet, pour avoir les résolutions DNS du réseau privé VPN, il faut ajouter l'adresse du serveur DNS : 172.16.20.2 dans la configuration de résolution DNS.

Pour cela, 2 méthodes:

Soit vous êtes sur un poste avec serveur DNS (cas de PC serveurs):

Vous devez modifier dans /etc/bind/named.conf.options

forward first;
forwarders {
   172.16.20.2;
};
dnssec-validation no;

Soit vous êtes sur un poste utilisateur client sans serveur DNS (cas le plus fréquent):

Vérifier que le fichier /etc/openvpn/update-resolv-conf est présent. Si non le créer avec le contenu suivant

#!/bin/bash
#
# Parses DHCP options from openvpn to update resolv.conf
# To use set as 'up' and 'down' script in your openvpn *.conf:
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
#
# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
# and Chris Hanson
# Licensed under the GNU GPL.  See /usr/share/common-licenses/GPL.
#
# 05/2006 chlauber@bnc.ch
#
# Example envs set from openvpn:
# foreign_option_1='dhcp-option DNS 193.43.27.132'
# foreign_option_2='dhcp-option DNS 193.43.27.133'
# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'

[ -x /sbin/resolvconf ] || exit 0

case $script_type in

up)
   for optionname in ${!foreign_option_*} ; do
      option="${!optionname}"
      echo $option
      part1=$(echo "$option" | cut -d " " -f 1)
      if [ "$part1" == "dhcp-option" ] ; then
         part2=$(echo "$option" | cut -d " " -f 2)
         part3=$(echo "$option" | cut -d " " -f 3)
         if [ "$part2" == "DNS" ] ; then
            IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
         fi
         if [ "$part2" == "DOMAIN" ] ; then
            IF_DNS_SEARCH="$part3"
         fi
      fi
   done
   R=""
   if [ "$IF_DNS_SEARCH" ] ; then
           R="${R}search $IF_DNS_SEARCH
"
   fi
   for NS in $IF_DNS_NAMESERVERS ; do
           R="${R}nameserver $NS
"
   done
   echo -n "$R" | /sbin/resolvconf -a "${dev}.inet"
   ;;
down)
   /sbin/resolvconf -d "${dev}.inet"
   ;;
esac

Modifier les droits du fichier en exécution

$ chmod +x /etc/openvpn/update-resolv-conf

Ajouter les 3 lignes suivantes dans le fichier /etc/openvpn/*.conf (qui a été installé à la première étape)

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

A chaque arrêt/relance du VPN, le serveur DNS de ppo (172.16.20.2) sera ajouté ou supprimé au fichier /etc/resolv.conf (2 à 3 seconds après le démarrage du VPN). Si ce n'est pas le cas, vérifier si cela apparait dans un fichier /run/resolvconf/resolv.conf, et si oui, remplacer le fichier /etc/resolv.conf par un lien symbolique vers /run/resolvconf/resolv.conf et lancer la commande sudo resolvconf -u

Vous pouvez maintenant réaliser des résolutions DNS et des commandes SSH sur le serveurs. Vérifiez que tout fonctionne par la commande:

$ host chaloupe.partipirate.ppo

Cela doit vous renvoyer son adresse IP dans le réseau VPN.

Depuis l'interface graphique Ubuntu

Installer le package network-manager-openvpn

$ sudo apt-get install network-manager-openvpn

Quelques secondes après l'installation, depuis l'icone du network manager dans la barre de tache, choisissez Connexion VPN, Configurer le VPN, Ajouter et choisissez dans la liste OpenVPN.

Dans les options de la connexion, choisissez: Paramètre IPV4: adresses automatiques, serveur DNS: 172.16.20.2, Domaine de recherche: ppo, Routes, cochez la case Utiliser cette ressource uniquement pour les ressources de son réseau.

Puis depuis l'icone du network manager, choisissez "Activer le VPN".

Pour MAC OS X

FAQ

Comment obtenir un accès VPN ?

L'équipe technique distribue les accès sur besoin identifié ou demande. Envoyez un email sur la ML EkTek en motivant votre demande. Il n'est pas utile pour un site internet que 10 personnes disposent d'un tel accès mais il serait plus souhaitable qu'une personne en charge de la gestion technique du site en dispose