Archives de catégorie : Tutoriels

Le tutoriel (anglicisme dérivé de l’anglais tutorial) est un guide d’apprentissage du type tutorat, destiné en particulier au domaine informatique et permettant d’aider l’utilisateur novice à se former de manière autonome à l’utilisation d’un logiciel, à un langage de programmation ou à des jeux interactifs. Cependant, l’utilisation du mot « tutoriel » s’est généralisée et s’est étendue à toutes sortes d’activités, comme le bricolage, l’automobile, la photo, la vidéo, le jardinage, les loisirs créatifs, etc.

Le tutoriel est un outil pédagogique qui peut se présenter sous la forme d’un autre logiciel, d’une vidéo, d’un document textes/images électronique ou papier, constitué d’instructions détaillées pas à pas, le plus souvent par étapes. Contrairement au mode d’emploi qui énumère et décrit les fonctionnalités en détail, le tutoriel montre comment atteindre l’un des objectifs possibles, clairement définis. Dans le cas d’un logiciel, il peut constituer une première méthode d’approche, constituée d’exemples pratiques.

Intégrer Dropbox à ses scripts

« Dropbox Uploader » est un très bon outil à avoir sous la main, si pour une raison quelconque vous avez besoin de pouvoir envoyer sur Dropbox en ligne de commande certains fichiers que vous hébergez sur votre serveur personnel. Et cela sans avoir besoin donc d’installer l’outil officiel fourni par la firme.

Ce script se connecte très facilement sur votre compte Dropbox en utilisant leurs API.

le script vous indiquant toutes les actions à effectuer lors de son exécution, je n’en dis pas plus.

Lien vers le script: https://github.com/andreafabrizi/Dropbox-Uploader/

Allez je vous laisse saturer les serveurs de Dropbox ! (Enfin d’Amazon)

Un add-on SMS à MailPoet

MailPoet est un plug-in worpdress incroyable, excusez-moi pour l’adjectif, qui permet de déployer aisément une newsletter de qualité professionnelle. Gestion des inscriptions et des désinscriptions faciles, gestion des listes, design de vos e-mails responsives, possibilité de tracer l’ouverture des newsletters.

EDIT:  L’add-on est seulement compatible avec MailPoet 2.  La version 3 de MailPoet a complétement réorganisé les tables de la base de données et cela nécessite donc de redévelopper l’add-on…

Bref bref, que du bonheur à gérer et à utiliser.

Mais voilà parce qu’on en a jamais assez, le club chez qui j’ai déployé cette solution m’a fait part de son besoin de pouvoir avertir à la dernière minute ses adhérents en cas de fermeture inopinée de la piscine. Et bon on est d’accord, pour ça une newsletter c’est pas le top.

Pourquoi ? Déjà une newsletter qui se respecte ne s’envoie pas en un seul flux sur un intervalle court, afin d’éviter le blacklistage opérateur. Mais aussi parce que « les vraies gens » ne sont pas tous des geeks en puissance, lisant à la minute même le moindre e-mail reçu. Votre mail d’alerte a donc de fortes chances de se retrouver noyé dans la masse.

Dans notre cas, certains parents déposent les enfants à une cinquantaine de mètres de la piscine, ceux-ci se retrouvant devant porte close  sans possibilité de joindre leurs parents. C’est dommage…

Mais voici venue la SOLUTION ! Un plug-in permettant d’envoyer des campagnes SMS à l’aide de MailPoet.

L’idée, utilisation d’un téléphone mobile Android avec l’application SMS Gateway. Configuration de la box sur lequel est branché le smartphone afin qu’il puisse recevoir des requêtes HTTP depuis votre site web. Une requête HTTP correspondant à un SMS avec son correspondant et son texte pour SMS Gateway.

Bien sûr, faire attention à l’opérateur mobile que vous utilisez, après tout pas sûr que l’envoi de SMS de masse soit autorisé avec votre forfait.

Afin de limiter les dégâts au niveau du nombre de SMS à envoyer, on crée dans MailPoet une liste pour chaque jour d’ouverture du club. Pourquoi pas par activité ? Beaucoup trop d’activités dans le club avec des répétitions d’horaires, etc. Et c’est beaucoup plus rapide pour les personnes du club de choisir par eux-mêmes à quel jour de la semaine ils doivent s’abonner.

Le plug-in est disponible sur Github: https://github.com/enzo-g/MP-SMS

Alors au niveau des bugs à l’instant T:

* Si on envoie plus de 100 SMS en un coup, risque de timeout et donc pas tous les abonnés recevront la campagne SMS.
* La zone pour écrire les SMS ne gère pas le retour à la ligne.

 


Tutoriel de mise en place du plug-in:

Étape 1: Configurer Android

Installation de SMS Gateway

En premier lieu trouver un smartphone Android que vous pourrez laisser à un emplacement fixe, connecté à un box Internet en permanence. Installer via le playstore ou directement via le fichier .apk, l’application SMS Gateway.

 Configuration de l’IP du téléphone: Cette option pouvez change d’un téléphone à l’autre avec les différentes surcouches constructeurs et opérateur. Je vous laisse chercher sur internet pour trouver les instructions concernant votre modèle de téléphone.

Étape 2: Configurer votre Box/Routeur

Malheureusement je ne peux pas expliquer cette manipulation qui est différente en fonction du modèle de Box Internet / Routeur que vous posséder. La manipulation que vous allez devoir effectuer concerne le NAT/PAT. Vous devez faire en sorte que les requêtes qui seront envoyé depuis le site web sur l’adresse IP publique de votre box atteigne votre téléphone.

Donc si par exemple je définis sur le site que l’adresse où joindre le téléphone est la suivante: http://Mon-IP-Publiquet:15000. Vous devez faire en sorte que le port externe 15000 de votre port pointe vers l’adresse privé de votre smartphone. Avec SMS gateway sur le port 9000: http://Mon-IP-PRIVE:9000

Bien sûr je vous recommande l’utilisation d’un DNS Dynamique si jamais vous ne possédez pas une adresse IP publique fixe.

Étape 3: Configurer MailPoet

Il est nécessaire de modifier manuellement 2 points particulier dans MailPoet, l’un nécessitant de vous connectez à votre base de données via phpmyadmin par exemple.

Dans MailPoet: Réglages > Formulaires > Modifier le formulaire que vous utilisez > Cliquer sur ajouter un nouveau champ > Choisir champ texte, valider pour « Uniquement des chiffres ».

Ensuite se rendre dans votre BDD, et se rendre dans la table wysija_user, et modifier la colonne cf_X (avec X pour chiffre le plus élevé, qui correspondra à votre dernier custom field créé.) Les modifications à faire, limiter la taille du varchar à 10 caractères.

Étape 4: Installer/Configurer l’extension

Le plug-in n’étant pas disponible sur les dépôts de WordPress, il va falloir télécharger le zip à l’adresse: https://github.com/enzo-g/MP-SMS et le dézipper dans le répertoire /wp-content/plugins/ et bien sûr l’activer ensuite.

Bref, une fois activé le plug-in est accessible aux éditeurs et administrateurs du site. via le menu MP-SMS.

En cliquant sur « Settings », vous pourrez modifier l’adresse IP à laquelle joindre votre smartphone, ainsi que l’ID du « custom field » où se trouve les numéros de vos utilisateurs.
J’ai ajouté le nom des colonnes présentes dans la table wysija-user afin que vous n’ayez pas besoin de vous connecter à votre base de donné pour obtenir la valeur du « custom field » à déclarer.

La page Contacts, affichera la liste des personnes ayant enregistré un numéro de téléphone respectant ces critères, commence par 06 ou 07 et utilisateurs toujours abonnés.


Comme je l’ai signalé, c’est un plug-in fait maison, je ne suis pas spécialisé en développement 😉 mais si jamais ce plug-in permet d’encourager un meilleur développeur à faire une extension similaire, mais non buggé, tant mieux ! 🙂

VMware et Hyper-V, une cohabitation difficile.

L’hyperviseur de Microsoft est gratuit et inclus dès Windows 8 pro.

Cependant si jamais VMare est également présent sur votre système vous serez confronté à un message d’erreur. Ce message disant qu’Hyper-V doit être supprimé de votre système si vous souhaitez utiliser VMware.

VMware Workstation and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Workstation.

Malheureusement seule solution respecter cette demande afin d’utiliser VMware. Mais il est possible de suivre cette indication intelligemment, via l’édition du menu de démarrage de Windows. En effet nous n’allons pas véritable supprimer Hyper-V mais le désactiver (désactivation du rôle).

Deux choix s’offrent à vous, la méthode pas pratique: activer/désactiver à la main en modifiant votre menu de démarrage à chaque fois que vous souhaitez switcher entre vos deux hyperviseurs.
Donc, démarrer votre ordi, exécuter la commande appropriée, redémarrer.

Dans un cmd lancé en administrateur:

Désactivation d’Hyper-V:

Activation d’Hyper-V:
Maintenant la méthode pratique:

Dans le menu de démarrage de Windows, on va créer une nouvelle option de démarrage, avec la fonction désactivant Hyper-V incluse à l’intérieur. Pour faire cela, on utilise l’outil BCDedit encore une fois:

Création de la nouvelle option via cmd lancé en administrateur toujours:

En réponse à cette commande, vous devez obtenir le message suivant:

Commande suivante, appliquer l’option désactivant l’hyperviseur à notre GUID:

Et voilà c’est terminé, maintenant au démarrage, vous aurez une nouvelle fenêtre intermédiaire avant d’arriver à votre écran de login vous permettant de choisir entre:

  • Boot without hypervisor (ou le nom que vous avez spécifié)
  • Windows 8.1

Enjoy !

 


Sources:
http://empiricalmusing.com/Lists/Posts/Post.aspx?ID=25
http://www.maximerastello.com/installer-vmware-workstation-9-windows-8-hyper-v

FFmpeg, la source du traitement vidéo et audio

Convertir des vidéos est une activité parfois épuisante ! Heureusement de nombreux logiciels sont là pour nous faciliter la tâche, mais voulez-vous connaître un secret ? Nombre d’entre eux se basent sur FFmpeg.

FFmeg c’est, je cite: une collection de logiciels libres destinés au traitement de flux audio ou vidéo (enregistrement, lecture ou conversion d’un format à un autre). « Wikipedia ».

Le MP4 sur mon navigateur met parfois du temps à charger. J’ai donc pensé quitte à mettre une vidéo en ligne, à visionner dans un navigateur autant la mettre dans le format qui lui est désormais dédié. Le « webm », WebM est un format multimédia ouvert principalement destiné à un usage sur le web. « Wikipedia »

Au départ j’ai souhaité utiliser « Freemake Video Converter », c’est un programme simple que je connaissais, mais qui avec le temps compile 3 différents programmes indésirables dans son processus d’installation.

Et qui malheureusement n’a même pas réussir à faire la conversion que je lui ai demandé, buggant avant le moindre petit bit traité.

Je me suis donc résolu à utiliser FFmpeg en ligne de commande, ne souhaitant pas tester d’autres logiciels.


Instructions d’installations sous Windows, se rendre à l’adresse: http://ffmpeg.zeranoe.com/builds/

Télécharger la version « static » correspondant à votre installation de Windows, 32 ou 64 bits.

Vous obtenez un fichier zip, dézippez le contenu dans le répertoire de votre choix, par exemple: « C:ProgrammesFFmpeg ».

Maintenant, faîtes un clic droit propriété sur « Ordinateur », pour se retrouver sur la page « Systèmes ». Cliquez sur « Modifier les paramètres ». Dans la fenêtre qui s’ouvre, se rendre dans l’onglet « Paramètres système avancé », puis cliquer sur « Variable d’environnement…. ».

J’ai choisi de modifier les variables systèmes qui affecteront tous mes utilisateurs, ce qui leur permettra d’utiliser également FFmpeg.

Double-cliquer sur « Path », ou l’on rajoute à la toute fin un point-virgule « ; », puis « C:ProgrammesFFmpegbin; » sans les guillemets bien sûr.

Puis cliquer sur « OK » dans les différentes fenêtres ouvertes afin de valider la modification. Grâce à cette modification, il est désormais possible, en ouvrant le terminal CMD, d’utiliser la commande: ffmpeg.


Maintenant pour convertir une vidéo mp4 en webm voici la commande que j’ai utilisé:


Source: http://adaptivesamples.com/how-to-install-ffmpeg-on-windows/

Lshell – un shell sans droit

Lshell est un Shell alternatif à bash et qui va permettre de restreindre aisément les possibilités de nos utilisateurs.

J’ai eu l’occasion de découvrir ce Shell alternatif lorsque je cherchais à permettre à des amis d’utiliser mon serveur comme proxy socks. Cependant je ne voulais pas qu’il puisse faire autre chose que cela, et un proxy socks SSH nécessitant une connexion SSH et donc un accès à la console, il fallait que je trouve un moyen de restreindre leurs mouvements.

C’est beau la confiance :'( , rassurez-vous, je m’inquiétais plus des gens qui auraient accès à leurs ordinateurs que d’eux même.

Les sources sur GitHub: https://github.com/ghantoos/lshell/wiki

ou bien la commande Debian:

Pour assigner ce Shell à vos utilisateurs, se rendre dans « /etc/passwd »:

On peut également désigner le Shell à assigner à l’utilisateur lors de sa création:

 

 

 

Ninite – Installer vos programmes en quelques clics

Ayant souvent l’occasion d’avoir en main des ordinateurs que je dois remettre à zéro, je me retrouve souvent à la phase d’installation des « logiciels de base ».

Par logiciel de base j’entends lecteurs de vidéos, éditeurs de documents, lecteur PDF, antivirus, utilitaires de nettoyages…

Bref à vous de faire votre choix, l’installation de tous  programmes un à un prend un certain temps. D’où l’intérêt de Ninite qui vous permettra d’aller prendre l’air en attendant.

Sur le site sélectionnez les logiciels que vous souhaitez installer, puis cliquer sur « Get Installer », lancer l’exécutable et faites ce que vous avez à faire.  Seule une connexion Internet est nécessaire à Ninite, c’est ce qui prendra donc le plus de temps parfois.

Ninite fera pour vous aussi les mises à jour de vos programmes. Tout cela sans installer les différents « publiciels » / toolbars inclus dans certains programmes légitimes.

 

ENCFS le chiffrement adapté au Cloud

Vous aimez les services offerts par OneDrive, par Google Drive, ou Dropbox ?

Mais vous souhaitez protéger vos documents en cas d’intrusions extérieurs sur vos fichiers en ligne ? Ou bien vous voulez tout simplement protéger vos fichiers en local également.

Peut être connaissiez vous TrueCrypt, qui permet de créer un « container » fichier d’une taille fixe, qui peut être ensuite monté sur votre ordinateur tel un disque dur. Ce container peut être chiffré à l’aide de différents algorithmes.Cependant d’autres alternatives existent, l’une plébiscité en ce moment serait Tomb sous Linux . Sous Windows une alternative est FreeOTFE.

Okay, ça à l’air génial, quel est le problème ?

Et bien le problème avec ce genre de solutions c’est le « container ». N’importe quelles modifications d’un fichier dans le container entraînera une modification de la structure de mon « container » ce qui fait que pour un container d’une taille de 5Go, la modification d’un fichier contenu à l’intérieur de n’importe quelle taille. Nous obligera à ré-uploader 5 Go de données ! Je ne sais pas pour vous, mais moi je ne peux pas me le permettre.

Quels solutions alors ?

Le meilleur choix pour sauvegarder ses fichiers en ligne est donc de les chiffrés individuellement.

A cette fin vous trouverez de nombreux outils, notamment AxCrypt, très simple d’utilisation. Cependant ce n’est pas suffisant car ce logiciel vous oblige à chiffrer et déchiffrer chaque documents que vous souhaitez utiliser et n’est pas multiplate-forme.

Pour ma part j’ai fait le choix d’utiliser le système ENCFS, encfs permet de chiffrer ses documents à l’aide d’AES et Blowfish.
ENCFS, vous permets de choisir un dossier dans lequel vos documents seront stockés chiffrés. Pour pouvoir ajouter des documents à ce dossier, on va devoir monter ce dossier, qui apparaîtra ainsi comme un nouveau disque dur, dans lequel vous pourrez déposer et afficher vos fichiers de manières déchiffrés. Les fichiers déposés à l’intérieur de ce disque, sont en fait chiffré individuellement dans le dossier choisi de base.

Cette manière de faire vous permet ainsi de manipuler un grand nombres de documents chiffrés à la fois sans avoir besoin de rentrer plusieurs codes. Et seuls les fichiers modifiés se verront ré-uploadé en cas de modification.

Un défaut à citer ?

Et bien 2 défauts sont à signaler, apparemment une possible faille de sécurité existeraient d’après une étude de 2014. Mais aucun exploit n’est disponible, du moins publiquement, à ce jour.

Mais l’un des problèmes que l’on peut rencontrer à cause d’ENCFS concerne la longueur des noms des fichiers, ainsi lorsque vous choisissez votre dossier cible, ENCFS vous proposera de chiffrer également le nom de vos fichiers. Et si jamais l’arborescence de vos dossier est déjà longue, cela ajouté à la modification de noms, on peut atteindre rapidement la limite de 255 caractères supportés par les systèmes de fichiers.
Causant des bugs aléatoires, impossibilité d’uploader un fichier en ligne, de sauvegarder une modification etc…
Bref faîtes donc attention à ce point.

Installation de ENCFS sous Windows:

On va devoir récupérer en premier lieu la librairie Dokan: dokan-0.6.0 , la page du projet est ici. Installez là.
Ensuite on récupère le programme encfs en cliquant ici , la page du projet ici. Celui-ci est « livrée » dans un fichier zip, je vous conseille de le dézipper dans le répertoire C:\Programmes de votre disque dur puis de faire un raccourci sur le bureau de l’éxécutable encfsw.exe sur votre bureau.

Sous Debian:

Si nécessaire, dans un terminal:

Ajouter également votre utilisateur courant dans le groupe « fuse » cela vous permettra de démonter facilement le système de fichier chiffré que montera le programme encfs quand vous l’éxécuterez.
Monter un dossier chiffré et créer un dossier chiffré se fait de la même manière, pour la commande suivante utilisez bien les chemins « absolus » dans votre commande:

Utiliser un proxy SOCKS

Qu’est-ce qu’un proxy socks ?

Un proxy socks a la possibilité de faire transiter tous types de paquets contrairement aux proxys http/https/ftp, vous permettant ainsi de faire passer n’importe quelles applications via ce tunnel et permettant de chiffrer votre trafic sur votre réseau local et d’afficher une IP différente à la sortie.

C’est encore une méthode bien pratique pour déjouer le filtrage effectué au sein de votre réseau, à condition que le port du serveur SSH que vous souhaitez atteindre, habituellement le port 22 ne soit pas bloqué.

Une fois encore dans l’optique d’utiliser plusieurs services sur un même port, le port 443 par exemple, avec l’utilisation de SSL (https) et SSH sur celui-ci une solution existe:
http://simongoudie.com/blog/2012/06/03/sharing-port-443-between-ssl-and-ssh-using-sslh.html

Il est bien plus simple et rapide de mettre en place un proxy socks que de mettre en place un serveur OpenVPN.

Car seule une connexion SSH vers l’un de vos serveurs Linux / Windows est nécessaire.

Côté serveur:

Sous Linux Debian, en théorie rien de particulier à faire si vous avez déjà réussi à vous connectez en SSH dessus.
Sinon il sera parfois nécessaire de lancer le service: /etc/init.d/ssh start.
Voir de l’installer, se tourner alors vers openssh: apt-get install openssh-server
Si votre serveur Linux est un vps que vous louez sur un service tel que Pulseheberg, vous n’aurez rien à installer.

Sous Windows, actuellement je n’ai expérimenté qu’une seule manière pour utiliser un serveur, ordinateur Windows comme proxy socks. J’utilise pour cela le logiciel CopSSH.

Côté client:

La connexion SSH avec tunnel sous Windows, la manière simple:

Télécharger l’utilitaire « Putty » ou « Kitty », l’un  et l’autre ont des interfaces similaires ou presque, cela n’a pas d’importance.

Maintenant, renseignez vos identifiants SSH, laissez ensuite la connexion ouverte.

La connexion SSH avec tunnel sous Linux, dans un terminal utilisez la commande suivante:

A noter que Putty est aussi disponible sous Linux…

Faire passer son navigateur par le proxy SOCKS:

Se rendre dans votre navigateur favori pour lui indiquer qu’il doit utiliser le proxy SOCKS que vous venez de lancer.

J’ai l’habitude d’ajouter à Chrome et Firefox, l’extension foxyproxy  qui permet de switcher rapidement entre les différents proxys que j’utilise habituellement. Je vous encourage à faire de même car cette extension est très sympathique.

Avec Internet Explorer: Options Internet (accessible également via le menu démarrer) > Connexions > Paramètres réseau > Avancé.
Remplir la ligne Socks avec: localhost et port 9999 puis cliquez sur OK > OK >OK.

Et voilà maintenant vous pouvez vérifier en allant sur http://www.mon-ip.com/ , si vous voyez apparaître l’adresse IP de votre serveur c’est que c’est bon.

Avec Firefox:

Un clic-droit sur l’icône de Foxy-Proxy puis « Utiliser  le proxy MonProxy » vous permettra ensuite d’utiliser votre votre proxy SOCKS.

Avec Chrome:

Si vous utilisez FoxyProxy, il faudra faire un clic gauche sur l’icône de celui-ci puis aller dans Options pour ajouter votre proxy SOCKS.
Ce qui donne rapidement: Options > Add new proxy: sur cette page faire attention à bien cocher « SOCKS ». Je vous laisse remplir les champs nécessaires par vous même.

Comment aller plus loin:

Évitez la fuite de DNS, si l’anonymat est une question de vie ou de mort pour vous: https://www.libre-parcours.net/2012/09/eviter-les-fuites-..
Définition du wiki et quelques logiciels: http://fr.wikipedia.org/wiki/SOCKS
Passer les frontières du SOCKS: http://repo.hackerzvoice.net/depot_madchat/coding/c/c.rezo/socks.txt

Installer un serveur OpenVPN sous Debian

Un nouvel article sur le sujet est disponible à cette adresse: Créer un serveur OpenVPN sur Microsoft Azure

Un serveur VPN dans la pratique est généralement utilisé pour passer outre les limitations imposées par l’administrateur du réseau que vous utilisez.
Ainsi il est bien souvent utilisé pour:

  • consulter les sites non autorisés sur le réseau
  • afficher à la face du monde une IP différente de celle de notre domicile

Bref, un serveur VPN ça permet de protéger ses données et de contourner la censure (une problématique qu’une partie du monde ne connaît que trop bien).

Techniquement:

Un serveur VPN (VPN pour Virtual Private Network), permets de relier de manière sécurisée 2 réseaux entre eux en créant un tunnel sécurisé (encapsulation et chiffrement de paquets).
Le protocole utilisé le plus souvent auparavant était le protocole PPTP, celui-ci présenté déjà une faiblesse, car attaquable lors de sa phase d’identification, qui était résolu grâce à une complexité de mot de passe plus élevé notamment.
Cependant le fait que le chiffrement MS-CHAPv2 est désormais lui aussi cassé, PPTP est à abandonner.

OpenVPN est la solution à déployer dans le monde du libre afin de créer un serveur VPN avec lequel vous pourrez établir une connexion sécurisée.

Afin de pouvoir se connecter sur ce serveur VPN en tout lieu, c’est à dire depuis des hotspots publics notamment sans avoir de problème, on va configurer notre serveur VPN pour qu’il écoute sur son port 443.

Si jamais votre serveur VPN fait aussi office de serveur WEB avec connexion HTTPS (vous avez dit « owncloud » ?), nous verrons plus loin une astuce afin de garder ce service actif également.

Menu du jour:

  1. Pré-requis
  2. Installer OpenVPN
  3. Configurer OpenVPN
  4. Configuration du routage
  5. Création d’un compte client OpenVPN
  6. Installation et configuration du client OpenVpn sous Windows et Linux
  7. Script pour automatiser installation Serveur et création compte client
  8. Faire cohabiter un serveur VPN sur port 443 avec un serveur apache en HTTPS

Les explications qui vont suivre ont été copiées à 99% depuis le blog de Pazpop

Je m’accorde 1% car je suis sympa avec moi-même.


 

Dans cet article, je vais donc vous expliquer comment installer votre propre serveur VPN OpenVPN sous GNU/Linux Debian 7. Vous pouvez également suivre ce tutoriel pour d’autre distributions Linux et d’autres versions de Debian. Pour connaître la version de votre système d’exploitation, utiliser les commandes : uname -a et/ou cat /etc/debian_version.

Pré-requis :

Avant de commencer, vous devez être connecté sur votre serveur GNU/Linux en root via putty. Vous devez également avoir votre système à jour (apt-get update && apt-get upgrade).

 

Installer OpenVPN :

Effectuez une copie des fichiers de configuration et du générateur de clées :

 

Configuration d’OpenVPN :

Éditez le fichier /etc/openvpn/easy-rsa/vars et ajoutez ces lignes à la fin du fichier:

Ensuite, exécutez les commandes suivante afin de générer les clés (.key) et les certificats (.crt) :

Copiez ensuite les clés et les certificats dans le répertoire /etc/openvpn/ :

Puis, générez les répertoires /etc/openvpn/jail et /etc/openvpn/clientconf. Le premiers répertoire permet de chrooté le processus OpenVPN (afin de limiter les dégâts en cas de faille dans OpenVPN) puis, le dernier répertoire contiendra la configuration des clients :

Enfin, créez le fichier de configuration /etc/openvpn/server.conf :

Cette configuration permet de créer un serveur VPN SSL routé basé sur le protocole TCP et utilisant le port HTTPS (443). Les clients obtiendront une nouvelle adresse IP dans le range 10.8.0.0/24 et aurons les DNS de OpenNIC (87.98.175.85 et 188.165.91.48).

Vous pouvez tester la configuration en saisissant la commande suivante:

Alors en théorie si ça marche, ça renvoie à peu près cette ligne:

Personnellement cela ne m’a rien renvoyé, et même une fois j’ai fais ctrl+c pour sortir ^^ et pourtant mon serveur fonctionne donc … je ne sais pas.

– Démarrage du serveur VPN OpenVPN :

On lance le serveur avec la commande :

Vous pouvez observer les logs :

 

Configuration du routage :

À ce stade les machines clientes vont pouvoir se connecter au serveur VPN. Par contre impossible d’aller plus loin car ce dernier aura l’adresse 10.8.0.x qui ne sera par routée en dehors de votre serveur. Il faut donc configurer le serveur pour qu’il joue le rôle de routeur entre l’interface VPN (tun0) et l’interface physique (eth0). Après ces opérations, votre serveur NATera les adresses en 10.8.0.x vers son adresse IP réelle.

Configuration du routage:

[ sh -c ‘echo 1 > /proc/sys/net/ipv4/ip_forward’ ]

Afin de rendre cette modification permanente, vous devez éditer le /etc/sysctl.conf :

Puis configurer la translation d’adresse (NAT) :

Pour rendre cette règle de NAT persistante, il va falloir créer un script qui se lancera au démarrage de votre Debian :

Dans le fichier « /etc/init.d/ScriptIPtables », écrire (en root):

Rendre exécutable ce fichier (en root):

Le serveur est maintenant prêt à accueillir les clients.

Création d’un compte client OpenVPN

Ici, nous allons créer la configuration pour notre client VPN. (Plus bas, un script pour faire ça rapidement)

Avec  les commandes suivantes, un mot de passe sera demandé à l’utilisateur pour se connecter à votre serveur VPN.

Si pour vous cela n’a pas d’importance, vous pouvez utiliser les commandes suivantes:

Copiez les fichiers nécessaires sous le répertoire /etc/openvpn/clientconf/ préalablement créé :

On va ensuite dans le répertoire /etc/openvpn/clientconf/mon-serveur-vpn/ :

Créez le fichier client.conf (remplacez A.B.C.D par l’adresse publique de votre serveur VPN) :

Pour assurer la compatibilité avec le client Windows OpenVPN, on fait une copie du fichier client.conf vers client.ovpn:

 

Installer et configurer votre client VPN Windows

Téléchargez et installez le client VPN OpenVPN. Vous le trouverez ici. Attention, prenez le client compatible avec l’architecture de votre CPU (64bits ou 32).

Allez sur votre serveur et télécharger le contenue du répertoire /etc/openvpn/clientconf/mon-serveur-vpn. Collez ensuite les fichiers dans le répertoire de votre ordinateur C:Program FilesOpenVPNconfig.

Exécutez votre client VPN OpenVPN en tant qu’administrateur. Dans votre barre des taches, en bas à droite, une nouvelle icône devrait apparaître. Faites un clic droit dessus et cliquez sur ‘Connecter’.

– Installer et configurer votre client VPN Linux

Et bien, il suffit d’un petit « apt-get install openvpn », se rendre ensuite à l’aide du terminal dans le dossier ou se trouve l’ensemble de vos fichiers clients. Puis « sudo openvpn client.conf ».

Après quelques secondes vous serez connecté à votre serveur VPN !!
Pour vérifier votre nouvelle IP, allez ici.


–  Script création d’un serveur OpenVPN

Script extrêmement basique car il compile juste les étapes décrites précédemment. Fonctionne parfaitement sous une installation propre de Debian 7.
A télécharger en txt.
Attention, il va falloir fixer à la main les règles iptables.

– Script création compte client OpenVPN

Un script pour automatiser la création de clients OpenVPN.

 


– Faire cohabiter OpenVPN et un serveur web sur son port 443 c’est tout à fait possible.

Pour cela on doit procéder à « 2 » modifications.

Tout d’abords si vous utilisez un serveur web apache:
Modifier le fichier: « /etc/apache2/ports.conf » afin de changer le port des connexions SSL qui était (surement) 443 en 10443 par exemple.

Il faut que vous fassiez le même types de modification dans vos fichiers de virtual-hosts, qui doivent se trouver ici: « /etc/apache2/sites-available » toutes mentions du port 443 deviendra 10443.

Ensuite il faut modifier le fichier: « /etc/openvpn/server.conf »

On a rajouté la ligne:

Cela permet d’indiquer à OpenVPN que les paquets https qu’il va recevoir sur ce port devront être redirigés en interne sur le port 10443 sur lequel écoute désormais notre serveur apache.

Bien sûr après avoir fait ces modifications, il faut relancer nos services:

Si un message d’erreur apparaît pour l’un ou l’autre c’est probablement dû à un oubli du côté d’Apache.


Ce qu’il faut comprendre: bien que nous accédions au serveur OpenVPN via le port 443, qui correspond généralement à une connexion de type sécurisée SSL, les paquets envoyés par OpenVPN sur ce port ne comportent pas l’en-tête attendus dans le cas d’une connexion https.
Ainsi si jamais votre opérateur utilise un équipement particulier pour regarder à l’intérieur de vos paquets, il peut repérer l’utilisation d’OpenVPN et le bloquer.
Si jamais vous étiez dans ce cas de figure, il est intéressant de s’orienter vers ces solutions:


 

Astuce: Si jamais vous arrivez à vous connecter au VPN avec votre client, mais que vous n’avez pas ensuite accès à internet, pensez à vérifier vos règles NAT:


Sources consultées (et aujourd’hui copié) lors de la création de cet article:

Création du serveur: http://pazpop.fr/installer-un-serveur-vpn-openvpn-sous-gnulinux-debian/
Chroot OpenVPN + script: http://blog.valouille.fr/2013/02/installation-dun-serveur-openvpn-et-automatisation/
Faire cohabiter OpenVPN + serveur web https: http://www.vpntutorials.com/tutorials/openvpn-sharing-a-port-with-a-webserver-on-port-80-443/