Tutoriel création d'un VPN sous Windows

Qu’est-ce qu’un serveur VPN ?
Dans ce tutoriel nous verrons comment étendre votre LAN sur internet ! Cela fonctionne sous Windows 7 et 8 et utilise le protocole « point-to-point tunneling protocol » (PPTP).
Vous pourrez par exemple naviguer sur internet en toute sécurité à partir d’une connexion WiFi publique, faire une LAN à l’autre bout du monde, etc.
Vous verrez que c’est très intéressant de créer un serveur VPN gratuit sous Windows, mais il y a quelques limitations :
  1. Vous devrez ouvrir / forwarder des ports sur votre routeur (souvent votre box internet)
  2. Il est nécessaire d’ouvrir un port sur internet, donc utilisez un très bon mot de passe et ne choisissez pas le numéro de port pas défaut
  3. Si vous voulez un service simple à utiliser gratuit (mais parfois lent ou limité) ou alors payant, je vous conseille de jeter un œil à cette liste sur Korben.info
  4. À moins que votre PC Windows soit aux USA, vous ne pourrez pas accéder à des sites géobloqués ;=)

Qu’est qu’un serveur VPN ?

VPN signifie Virtual Private Network. Comme son nom l’indique, cela consiste à créer un réseau privé (comme un LAN par exemple), mais de manière virtuelle. Cela veut dire que l’on peut créer un réseau privé sur d’autres réseaux comme internet ! Votre LAN ne se limite plus à ce qui est derrière votre box (plage d’adresse IP en 192.168.x.x) !
Cela permet aussi d’accéder à un site internet depuis l’endroit où se trouve le serveur VPN. Par exemple, en vous connectant à un serveur VPN aux USA vous pourrez accéder à des sites internet réservés aux Américains (comme Netflix).

Quelle est l’utilité d’un VPN ?

Ce genre de réseau est utilisable dans de nombreuses situations, que ce soit dans un cadre familial ou professionnel.
  • Accéder au réseau d’entreprise lorsque vous êtes en déplacement. Par exemple chez un client, vous pouvez utiliser une imprimante de votre entreprise (je sais ça sert à rien, mais c’est pour montrer que l’on peut avoir accès à tout ce qui est sur le réseau local de l’entreprise).
  • Vous pouvez faire de même avec votre réseau domestique.
  • Contourner des limitations de votre FAI ou du lieu où vous vous connectez. Sur un réseau public, passer par un VPN permet que seul un flot de données cryptées passe sur ce réseau, même si vous accédez à des sites non HTTPS.
  • Contourner la censure. Les VPN permettent d’accéder à des sites interdits. Cependant, si l’adresse IP du serveur VPN est connue de la dictature, celle-ci peut vous bloquer l’accès au serveur VPN.
  • Accéder à des sites géobloqués comme Pandora, Hulu ou Netflix.
  • Télécharger des fichiers. Il est possible d’utiliser les protocoles BitTorrent avec des VPN. Mais ces derniers ralentissent les débits, car il faut encrypter les données et transiter par un ou plusieurs serveurs VPN supplémentaires.

Création du serveur VPN

Nous allons commencer par créer une nouvelle connexion entrante dans les Connexions Réseaux. Pour cela, recherchez le fichier ncpa.cpl puis lancez-le :
Lancer ncpa.cpl
Lancer ncpa.cpl
Ou  « Panneau de configuration\Réseau et Internet\Connexions réseau ».
Ensuite, affichez la barre de menu en appuyant sur Alt puis dans le menu « Fichier » sélectionnez « Nouvelle connexion entrante »
Connexions Réseaux - Nouvelle connexion entrante
Connexions Réseaux – Nouvelle connexion entrante
Le premier écran vous demande de choisir quel utilisateur est autorisé à se connecter à cet ordinateur. Pour des raisons de sécurité, je vous conseille de créer un nouvel utilisateur en cliquant sur « Ajouter une personne ». Pour le mot de passe, choisissez quelque chose de compliqué (mais que vous n’oublierez pas !). Dans mon cas, l’utilisateur créé et autorisé à se connecter s’appelle VPN_User.
Création et sélection de l'utilisateur
Création et sélection de l’utilisateur
Maintenant, sélectionnez le type de connexion par lequel passeront les données du réseau VPN. Bien évidemment, cochez « Internet » !
Type de connexion
Type de connexion
Tout à l’heure je vous disais que l’on pouvait accéder à tout ce qu’il y a sur le réseau local, même les imprimantes. C’est sur cet écran que vous pouvez autoriser ou non certains protocoles. Par exemple vous pouvez empêcher les utilisateurs du VPN à accéder aux imprimantes connectées au réseau local.
Il est aussi possible de configurer l’adresse IP de la machine qui se connecte depuis le VPN soit avec le mode DHCP soit avec une plage d’adresses IP fixes. Dans mon cas, j’ai choisi le mode DHCP par défaut (pour changer, sélectionnez IPV4 ou IPV6 puis cliquez sur le bouton « propriétés »).
Choix des protocoles autorisés
Choix des protocoles autorisés
Lorsque vous validez (« Autoriser l’accès »), la nouvelle connexion est créée puis vous pouvez imprimer le résumé qui s’affiche à l’écran.
Résumé
Résumé
La nouvelle connexion apparait dans les Connexions Réseau :
Nouvelle connexion
Nouvelle connexion
Si vous désirez supprimer la connexion VPN il suffit de faire un clic droit dessus puis de choisir « Supprimer ».

Configuration du routeur

Maintenant il vous faut vous connecter à votre routeur et de forwarder le port TCP 1723 vers l’adresse IP de l’ordinateur hébergeant votre serveur VPN (càd. la connexion que l’on vient de créer).
Ensuite dans l’onglet « Configuration du routeur », « NAT/PAT » vous pouvez ajouter une nouvelle règle.
Nouvelle règle de routage
Nouvelle règle de routage
Pour une meilleure sécurité, vous pourriez forwarder un port au hasard (25678 par exemple) vers le port 1723 sur votre ordinateur. Cela évite qu’un pirate à la recherche de VPN (il scannerait toutes les adresses IP publiques qui ont le port 1723 ouvert) ne trouve votre réseau.
Si votre fournisseur d’accès ne vous fournit pas une adresse IP publique  fixe, vous pouvez utiliser le service DynDNS pour résoudre ce problème.

Connexion au VPN

Pour se connecter au VPN, il faut connaitre votre adresse IP publique (celle fournie par votre FAI). Vous pouvez la connaitre en allant sur whatismyip.com par exemple.
Pour créer une nouvelle connexion à un VPN, recherchez « Connexion » dans le « menu démarrer » et cliquez sur « Configurer une connexion réseau privé virtuel (VPN) ».
Configurer une connexion VPN
Configurer une connexion VPN
Rentrez alors les informations demandées :
Informations de connexion
Informations de connexion
Puis entrez le mot de passe que vous avez choisi pour le compte « VPN_User » au début du tutoriel.
Connexion au VPN
Connexion au VPN
Connexion au VPN en cours
Connexion au VPN en cours
Connexion au VPN réussie
Connexion au VPN réussie
Vous pouvez vous déconnecter du VPN comme n’importe quelle connexion :
Affichage de la connexion VPN
Affichage de la connexion VPN
Enfin, si vous souhaitez supprimer cette connexion, il suffit d’aller dans le même dossier qu’au début (ncpa.cpl ou « Panneau de configuration\Réseau et Internet\Connexions réseau ») et de faire un clic droit sur la connexion VPN puis « Supprimer ».
Pensez à choisir un mot de passe compliqué et un numéro de port autre que celui par défaut pour plus de sécurité.

Tutoriel Cloud AMAZON

Amazon Web Services

Intérêt et applications pratiques des AWS

Amazon propose depuis quelques années déjà des services de cloud computing.
Concrètement, Amazon Elastic Compute Cloud (EC2) permet de créer une machine virtuelle à partir d'un OS (Linux "normal", OpenSuse, Windows...), d'installer des services sur cette machine (Apache, PHP, MySQL...), et d'y accéder en HTTP, SSH, SFTP...
Une fois la machine finalisée, EC2 permet d'en créer une image afin de lancer de nouvelles instances à la volée en fonction des besoins (montée en charge) suivant le principe du load-balancing.
La facturation se fait soit au forfait (achat d'instance à l'année ou facturation à l'heure). Et surtout : gratuit la première année pour les nouveaux utilisateurs.
Attention toutefois, de nombreuses fonctionnalités sont payantes.
EC2 est donc l'équivalent d'un serveur dédié, avec l'avantage d'une possibilité de personnalisation quasi-illimitée des configurations.

Inscription à AWS

Pré-requis : posséder une carte de crédit.
L'inscription sur le site Amazon Web Services ne pose pas de problème particulier. Faut juste une carte bleue. Il est possible de se servir de son compte Amazon (achat livres, cd, dvd...), il suffit alors de compléter l'inscription.
Le téléchargement des clés de sécurité, certificats, identifiants pour credentials se font à ce moment.
Il s'agit d'une étape pour éviter les problèmes liées à l'identification lors des connexions.
Conseil évident : créer immédiatement un répertoire pour les stocker.

Interface de supervision

La console est très complète et permet d'accéder aux différents services AWS. Dans notre cas, seul l'onglet EC2 nous intéresse. S3, RDS et autres ne font pas partie de ce tuto.
console supervision aws
Console de supervision AWS


Une prise en main de l’EC2 passe par un petit tour d'horizon des fonctionnalités qui nous seront utiles.
Zones géographiques
La création d'une instance doit se faire dans une zone géographique. Pour des questions de temps de réponse, il est préférable de choisir une zone proche de sa clientèle ciblée (Irlande dans mon cas). Il existe des sous-zones géographiques (eu-west-1a, eu-west-1b...). Je vous recommande de sélectionner la même sous-zone pour chaque instance dès sa création pour le fonctionnement du load-balancer.
zones géographiques aws
Sélection de la région des instances EC2
Clés de sécurité
Les clés de sécurité sont un composant essentiel sous AWS. A tout moment, il est possible de générer une nouvelle paire de clés.
clé de sécurité aws
Sélection des clés EC2


Groupes de sécurité
Les groupes de sécurité sont modifiables à tout moment. L'ouverture des ports (SSH, HTTP...) et les restrictions d'accès se font à ce niveau.
groupe de sécurité aws
Sélection des groupes de sécurité EC2


Elastic IP
Il est possible d'attribuer une adresse IP à une instance EC2. L'adresse doit être associée à l'instance pour être fonctionnelle.
elastic ip aws
Elastic IP EC2


Load balancer
Le répartiteur de charge (load balancer) peut recevoir autant d'instances que nécessaire. Il possède son propre DNS, l'enregistrement CNAME doit pointer vers ce DNS.
load balancer EC2 aws
Load balancer EC2
Instances
L'instance est le composant de base de EC2. Il va employer les précédents paramètres pour se déployer (zone, clé, sécu, ip, lb). Des options de supervision (monitoring) sont disponibles à des niveaux techniquement et financièrement différents.
instance aws
Sélection des instances EC2
AMI
Les AMI (Amazon Machine Images) sont des images des instances. De nouvelles instances peuvent être créées à la demande en quelques minutes en quelques clics.
AMI aws
Sélection des images (AMI) EC2
Volumes
Un volume constitue la partition qui sera attachée à l'instance EC2. Le volume détient les données (site web, videos, fichiers..) et les met à disposition des instances. Des snapshot de sauvegarde peuvent être effectués.
volume EC2 aws
Sélection des volumes EC2

Création d'instance

Sélectionner la région.
Cliquer sur le bouton "Launch instance".
Une boite de dialogue apparaît, nous allons sélectionner la première instance proposée, qui est potentiellement gratuite (présence d'une étoile).
wizard EC2 aws
Wizard EC2 - Sélection AMI


Seul le premier onglet nous intéresse (Quick start) les autres sont :
My AMIs, pour lancer une instance à partir d'une AMI personnelle et Community AMIs pour utiliser des AMI préconfigurées par des tiers.
Cliquer sur "Select"
wizard EC2 aws
Wizard EC2 - Sélection AMI


Nombre d'instances : 1
Availability zone : eu-west-1c, conserver la même zone pour le load-balancer
Instance type : t1.micro (613Mo), la RAM sera suffisante pour ce qu'on va faire et micro est à 8Go de stockage, tout ça gratuit. Attention l'instance "small" est payante !
Cliquer sur "Continue"
wizard EC2 aws
Wizard EC2 - Sélection AMI
On conserve donc les options par défaut.
Cocher la case "Termination protection" pour se protéger d'une erreur comme la destruction accidentelle (et définitive...) d'une instance.
Cliquer sur "Continue"
L'écran suivant est pour l'attribution d'un tag à l'instance en cours de création.
Cliquer sur "Continue"
wizard EC2 aws
Wizard EC2 - Sélection AMI


Sélectionner la paire de clé générée lors de l'inscription.
Cliquer sur "Continue"
wizard EC2 aws
Wizard EC2 - Sélection AMI


Sélectionner le groupe de sécurité, au besoin, en créer un nouveau, il faut ouvrir les ports 22 (SSH) et 80 (HTTP) qui seront suffisants pour les premiers tests.
Cliquer sur "Continue"
wizard EC2 aws
Wizard EC2 - Sélection AMI


L'instance est prête à être lancée en cliquant sur "Launch"

Vous pouvez vérifier le bon fonctionnement de l'instance dans la console AWS : Status "pending" pendant le lancement et "running" en cours d'exécution.

Paramétrage de l'instance

Maintenant que notre instance est en cours de fonctionnement, nous pouvons lui attribuer une adresse IP (facultatif, elle a un DNS public) et nous connecter dessus via SSH.


Attribution d'adresse IP
Noter les "Instance ID" et "AMI ID" afin de ne pas les confondre entre-elles.
Cliquer sur "Allocate new address"
Yes, allocate (EC2)
Une nouvelle IP publique est créée, il faut maintenant l'associer à notre instance.
Cliquer sur "Associate address"
Sélectionner l'instance (ID et tag s'affichent)
Elastic IP EC2 aws
Wizard Elastic IP


La partie "Instances" de la console AWS nous permet de vérifier que l'IP a bien été assignée.
Une instance possède : IP privée et publique, DNS privé et public.
Connexion SSH
Depuis le terminal sous Linux si vous êtes un vrai, ou avec Putty sous Windows :
sudo ssh -i /chemin/vers/la/cle/cle_secrete.pem ec2-user@ip-ou-dns-instance
Connexion OK, message d'accueil AWS :
Instance EC2 aws
Connexion en SSH
Il n'est pas possible de se loguer avec un autre utilisateur que "ec2-user". Cet utilisateur est dans les sudoers.



Changement MDP root
Changement immédiat du mot de passe root, je n'ai jamais pu connaître celui à la création de l'instance.
Instance EC2 aws
Changement MDP root


Création nouvel utilisateur
La création d'un nouvel utilisateur fait partie de mes habitudes. Le but est de me créer un Virtual Host sous Apache qui me permettra d'accéder aux données présentes dans mon répertoire public_html.
sudo useradd ichiban -m
sudo passwd ichiban
Ajouter le nouvel utilisateur à la liste des sudoers
sudo visudo
ichiban ALL = NOPASSWD: ALL
Changement d'utilisateur et création répertoire public_html
su ichiban
cd ../ichiban
mkdir public_html
Tout de suite penser à changer les droits
sudo chmod 755 /home/ichiban
sudo chmod 711 /home/ichiban/public_html
Retour à l'utilisateur ec2-user pour continuer le paramétrage de l'image.
exit


Installation des services
Les machines Linux "standard" sont sur une base de RedHat. L'installeur est donc YUM. Faut faire avec, pas le choix.
sudo yum -y install tree
Apache et PHP, le but final
sudo yum -y install httpd php
Lancement auto des services au démarrage
Les services ne sont pas encore démarrés, mais je les ajoute tout de suite au démarrage.
sudo chkconfig --add httpd
sudo chkconfig --level 345 httpd on
Démarrage du serveur Apache
cd /etc/init.d/
sudo ./httpd start
Vérification via navigateur
La vérification peut se faire soit avec l'IP publique, soit avec le DNS.
Instance EC2 aws
It works !!


Redirection du site et création d'une page d'accueil
Pour tester la future répartition de charge, je vais changer l'emplacement par défaut du site sur Apache et créer une page d'accueil basique.
sudo mkdir /home/site
sudo chmod a+ site/
cd site
sudo vi index.php
Instance EC2 aws
index.php


Faire la même manip pour une page d'accueil dans le site perso
cd ichiban/public_html/
sudo vi index.php
echo 'Site perso ichiban sur Webserver-02
Modification configuration Apache
cd /etc/httpd/conf
sudo vi httpd.conf
Changer le DocumentRoot et le Directory à /home/site
Modifier les commentaires pour que l'on ait
#UserDir disabled
UserDir public_html
Décommenter la totalité du contrôle d'accès pour les répertoires persos des users
Directory /home/*/public_html .... 
Redémarrer le serveur Apache
cd /etc/init.d
sudo ./httpd restart
Vérification via navigateur
La vérification peut se faire là encore soit avec l'IP publique, soit avec le DNS.
Instance EC2 aws
Yes !!


Idem pour l'accès au site perso /~ichiban


Notre instance est complète et fonctionnelle : une machine Linux avec Apache et PHP, deux sites web (un public et un perso).
Attention, Aucun contrôle d'accès n'est en place (pas de .htaccess ni configuration particulière du httpd.conf). Je ne vous recommande pas de mettre ce site en production avec cette configuration.
MySQL n'est pas installé volontairement, il existe RDS et SDB chez AWS qui  fonctionne bien mais cela reste cher...


Création d'image

Un coup de clic droit sur l'instance puis "Create image (EBS AMI)"
Instance EC2 aws
Création d'image


Saisissez les paramètres perso
Instance EC2 aws
Création d'image


Un clic sur "Create this image"
Un tour dans la console à la rubrique des AMIs permet de voir l'image nouvellement créée.

Création du load balancer

Dans la console à la rubrique load balancer, "Create load balancer"
Les options par défaut nous sont suffisantes pour la suite
Instance EC2 aws
Création load balancer
Créer et modifier le fichier health check (ping path) au besoin, ce fichier permet au load balancer de vérifier le bon fonctionnement des instances.
Instance EC2 aws
Création load balancer


Ajouter l'instance que nous avons créé précédemment.
Instance EC2 aws
Création load balancer


La dernière étape est un récapitulatif des paramètres avant le lancement du load balancer. Une fois créé, le DNS du load balancer est exploitable directement.

Lancement d'une nouvelle instance

Nous avons donc :
- Une instance en exécution qui écoute sur les ports 80 et 22 (et plus si affinités)
- Une image de cette instance
- Un load balancer qui redirige les connexions vers notre instance sur le port 80
Prochaine étape : lancer une instance depuis notre image, l'intégrer dans le load balancer, modifier les pages des sites web public et perso et vérifier que tout fonctionne.
Dans la console AWS à la rubrique AMIs, clic droit sur l'instance à lancer.
Instance EC2 aws
Lancement d'instance


La suite n'est qu'une répétition de ce qui a déjà été fait lors de la création d'instance. Veillez à bien sélectionner t1.micro (gratuit normalement, mais payante puisque c'est notre seconde instance) et surtout la même sous-zone géographique, sinon le load balancer va vous balancer pour de bon.
Un retour à la console des instances nous permet de vérifier que les deux instances sont bien en exécution.
Instance EC2 aws
Les instances en fonction


Dans le load balancer, un clic droit sur le "+" permet d'ajouter une instance dans le dispositif.
Instance EC2 aws
Ajout d'instance
Sélectionner les deux instances.
Instance EC2 aws
Ajout d'instance


Un clic sur "Save" .
Le health check s'exécute, en attendant, reconnectez-vous en SSH sur l'instance nouvellement créée pour modifier les pages d'accueil des sites publics et perso (changer le nom du Webserver-xx affiché par exemple).
C'est l'AMI qui doit être à jour de données et non pas l'instance. A moins d'aimer uploader plusieurs fois les mêmes fichiers vers des instances en fonctionnement...
Cette partie est terminée, le load balancer est maintenant fonctionnel, il nous reste à voir un dernier détail : l'upload des données via SFTP avec FileZilla.


Upload SFTP

Ce n'est pas un tuto sur FileZilla, mais plutôt deux captures d'écran qui permettent de gagner du temps lorsque l'on ne connaît pas le paramétrage pour faire un upload de fichiers vers son instance EC2.
Filezilla EC2 aws
Paramétrage pour la clé


Filezilla EC2 aws
Paramétrage de la connexion