Archives de catégorie : Linux

Créer un serveur OpenVPN sur Microsoft Azure

Un article inspiré par le tutoriel disponible sur Digital Ocean: How To Set Up an OpenVPN Server on Ubuntu 16.04

Prérequis:

  • Disposer d’un serveur Ubuntu 16.04 LTS sur Azure, je recommande l’installation de ce serveur en mode « Classique ».
  • Ouvrir le point de terminaison 443 <=> 443 en TCP

Il faut suivre les étapes suivantes avec un utilisateur administrateur et non avec votre compte root.

Etape 1 – Installer OpenVPN

le package easy-rsa permet de gérer facilement notre certificat d’autorité interne.

Etape 2 – Configurer le répertoire CA

Etape 3 – Configurer les variables du certificat

Le fichier doit contenir entre autres les informations suivantes, modifier à votre convenance le texte entre guillement:

Etape 4 – Construire le certificat d’autorité

Vous devriez voir le message suivant:
On s’assure de travailler dans un environnement propre:
On génère le certificat racine:
Etant donné qu’on a renseigné le fichier vars avec nos informations, appuyez simplement sur entré au long de l’opération pour confirmer les sélections.

Etape 5 – Créer la clé, le certificat du serveur et le fichier de chiffrement

Vous pouvez accepter les valeurs par défaut proposés, puis valider la signature du certificat et la mise à jour de la base.
Nous allons générer un autre élément permettant de chiffrer de manière forte nos échanges de clés:
Afterwards, we can generate an HMAC signature to strengthen the server’s TLS integrity verification capabilities:

Etape 6 – Générer le certificat client et le signer

Etape 7 – Configurer le serveur OpenVPN

Nous allons tout d’abord copier les fichiers nécessaires à OpenVPN et que nous venons de générer:

Nous copions maintenant le fichier d’exemple de configuration d’OpenVPN pour nous en servir comme base:

On édite le fichier de configuration du serveur:

On modifie les données de dh, port et proto:

Voici l’ensemble des lignes à décommenter:

 

On ajoute la ligne key-direction:

 

On commente la ligne dev tun:

Etape 8 – Ajuster la configuration réseau de votre serveur

Editer le fichier « /etc/sysctl.conf »

et décommenter la ligne suivante:

Appliquez la modification au système avec la commande suivante:

 Editer le fichier de configuration du pare-feu « ufw » pour ajouter les lignes entre « START OPENVPN RULES » et « END OPENVPN RULES »

Vous allez peut être devoir modifier la ligne « -A POSTROUTING » afin qu’elle corresponde à votre carte réseau. Pour connaître le nom de votre carte réseau qui accède au net:

Si vous obtenez le résultat suivant, cela signifie que vous devez modifier dans votre fichier de configuration « eth0 » par « wlp11s0 »

Egalement nous allons modifier la configuration de ufw pour qu’il accepte le forward de packet par défaut:

Ajustement du pare-feu:

Rechargement du pare-feu:

Etape 9 – Démarrage et activation du service OpenVPN

Etape 10 – Créer un dossier pour stocker les configurations clients

Modifier les permissions sur les fichiers et répertoires que nous stockons:

Créons un fichier de configuration de base pour nos futurs utilisateurs:

On édite notre fichier:

Modifier la ligne « remote »:

Server_IP_adress correspond à l’adresse IP ou le domaine pointant vers votre serveur (XYZ.cloudapp.net).

Décommentez les lignes suivantes:

Commentez la ligne dev tun:

Commentez les lignes suivantes car nous allons intégrer directement dans notre fichier client les éléments correspondants:

Ajouter en fin de fichier la ligne suivante:

Créons maintenant un script pour générer rapidement notre fichier permettant de configurer le client VPN de nos utilisateurs:

Coller les lignes suivantes:

Rendre ce fichier exécutable:

A l’étape 6, nous avons générer les certificats pour notre utilisateur client1, nous allons maintenant générer le fichier de configuration qu’il doit recevoir de notre part:

Vous venez de générer un fichier client1.ovpn qui se situe dans votre dossier ~/client-configs/files.

Il ne vous reste plus qu’à le transmettre à votre utilisateur finale.

Bon surf !

Seafile – Sauvegarder ses données dans le cloud

J’utilise depuis maintenant plus d’un an une solution open source pour stocker, sauvegarder et partager mes fichiers en ligne lorsque cela est nécessaire. J’utilise pour faire tout cela Seafile. Seafile est une solution chinoise dont l’algorithme de synchronisation des fichiers est basé sur le fonctionnement de Git. Je stocke en ligne avec succès grâce à  Seafile, mes fichiers, mais également ceux de quelques membres de ma famille pour un total de 500 Go de données environ. Le contenu est divers: photos, vidéos, documents textes…

Comment se présente Seafile ?

Seafile est une solution qui présente déjà le premier avantage de disposer un client lourd pour Linux, Mac, Windows Android et iOS. Les documents sont également accessibles via une interface WEB.

Lorsque nous utilisons le client de synchronisation de notre PC, nous pouvons sauvegarder nos documents tel que l’on peut le faire sur Dropbox, c’est-à-dire que tous les documents que nous souhaitons sauvegarder doivent être placés dans le même dossier. Ou bien sauvegarder tout un ensemble de dossiers situés à différents endroits de notre ordinateur en créant de nouvelles bibliothèques. Le système de librairie n’est pas complexe en soi à intégrer.

Le système de bibliothèque n’est pas difficile à comprendre, mais pour plus de simplicité l’administrateur  a la possibilité de désactiver cette option (par utilisateur). Les bibliothèques n’imposent qu’une seule limitation dans l’utilisation de Seafile. Chaque librairie que nous créons peut être chiffrée à leurs créations. Lorsque l’on chiffre une bibliothèque, Seafile demande à saisir un mot de passe. Le chiffrement effectué par Seafile se fait côté client. Ainsi votre hébergeur ne recevra jamais ces données en clair. Cependant il est également possible d’accéder aux documents chiffrés via votre navigateur WEB. Actuellement lorsque vous effectuez cette opération, c’est le serveur qui stocke la clé permettant de déchiffrer de manière temporaire. Plus d’informations à ce sujet sur la page dédié du manuel de Seafile: Security Questions. La limitation de Seafile avec les bibliothèques est l’impossibilité de déplacer un document d’une bibliothèque chiffré à une bibliothèque non chiffrée (et vice versa) depuis l’interface web… Une limitation peut limitative à mon avis.

libraries_viewConcernant les documents que Seafile sauvegarde et synchronise, on retrouve en place un système de versionning très efficace, c’est-à-dire que Seafile fera en sorte de sauvegarder en ligne pour une période que nous avez la possibilité de définir l’ensemble des versions d’un document que vous êtes en train de modifier. Cela fonctionne également pour les documents que vous supprimez, une version restera accessible pendant X temps après leurs suppressions.

Pour ce qui est du partage des documents en ligne, Seafile permet de partager des fichiers, dossiers, bibliothèque (non chiffré) avec des utilisateurs, groupes de votre solution ou bien des personnes extérieures. Les liens générés par Seafile peuvent être envoyés directement à vos correspondants par e-mail par Seafile, avec un mot de passe à renseigner pour en protéger l’accès et une date d’expiration si vous le souhaitez.

Finalement un ensemble de fonctionnalités assez similaire à ce que l’on retrouve chez la concurrence, Owncloud, OneDrive, Google Drive…

Aujourd’hui si je parle de Seafile c’est en particulier pour promouvoir cette solution face à Owncloud dans la catégorie des solutions de stockage en ligne Open Source. Car malheureusement (pour moi), malgré son succès, je ne suis pas satisfait d’Owncloud, j’ai fait l’effort par deux fois de le mettre en place dans l’optique de m’en servir comme espace de stockage en ligne principal et par deux fois mes efforts n’ont pas été récompensés. Je reproche particulièrement à Owncloud la qualité de son client de synchronisation. Un upload lent, des problèmes pour reprendre un upload interrompu, une façon de gérer les documents placés d’un dossier à un autre plutôt décevant (suppression des fichiers en ligne et réupload)…

Bref, je ne suis pas là pour critiquer Owncloud, mais pour parler de ma satisfaction quant au fonctionnement de Seafile. Surtout que je n’ai plus utilisé Owncloud depuis 1 an maintenant et que les nouvelles versions du logiciel ont surement amélioré son fonctionnement.

Seafile côté administrateur

Le serveur Seafile peut être installé (et est supporté) sur Debian 7, Ubuntu 14.04, Centos 7 et Windows.

Pour la partie site WEB, Seafile peut fonctionner aussi bien avec un serveur nginx qu’Apache, et il est très facile de mettre en place ce serveur en https (je recommande Let’s Encrypt). Et il est possible de configurer différents types de bases de données, j’ai personnellement choisi la configuration la plus simple, en utilisant un couple Apache + SqLite. En termes d’hardware, je ne rencontre aucun problème sur un serveur disposant d’un coeur (AMD Opteron 4171 HE 2,1 Ghz), de 2 Go de RAM et d’un disque dur limité à 500 E/S par seconde (pour  6 utilisateurs).

Seafile est aussi très simple à mettre à jour et je dois dire que la documentation en ligne est particulièrement complète.

Que gagne-t-on à installer la version pro ?

La version pro donne la possibilité de faire appel au support de Seafile, dispose de fonctionnalités supplémentaires comme la visualisation des fichiers doc, xls, ppt en ligne, la synchronisation avec annuaire LDAP etc…Les informations à ce sujet se situent sur la page Seafile Pricing.

J’espère que cet article vous aura donné envie d’essayer Seafile !

Utiliser Let’s Encrypt avec Nginx

Let’s Encrypt est disponible en bêta publique et c’est géniale, car les sites auto-hébergés vont enfin pouvoir s’équiper simplement et gratuitement de certificat SSL.

De mon point de vue c’est hyper-pratique pour le grand publique et les personnes qui n’aiment pas se prendre la tête mais appréciant monter des services de stockage tels que « Owncloud, Seafile, Pydio ». Ou qui ont un site web qu’ils souhaitent simplement rendre accessible via https.

Certes on pouvait déjà le faire, mais le message suivant apparaît dans les navigateur, si une autorité de certification comme let’s encrypt n’est pas utilisé:

2011-01-12-06-11-05-60d3a2

Let’s Encrypt est une autorité de certification lancée le 3 décembre 2015 (Bêta Version Publique). Cette autorité fournit des certificats gratuits X.509 pour le protocole cryptographique TLS au moyen d’un processus automatisé destiné à se passer du processus complexe actuel impliquant la création manuelle, la validation, la signature, l’installation et le renouvellement des certificats pour la sécurisation des sites internet.

Le manuel d’utilisation est disponible ici: https://letsencrypt.readthedocs.org/en/latest/using.html


 

Voyons voir comment l’utiliser sur un serveur Debian avec un site tournant sous nginx:

Installer git:

Télécharger let’s encrypt et se rendre dans le dossier:

Couper le service nginx:

let’s encrypt lors de la génération du certificat va avoir besoin d’utiliser le port 443, si nginx (ou tout autre services) tourne déjà sur ce port, il est nécessaire de l’arrêter.

Lancer let’s encrypt

Une interface va apparaître, pour vous demander 2 informations:

  • Une adresse e-mail de contact
  • Le nom du domaine que vous allez adressé avec ce certificat.

Finalement vous obtiendrez 2 certificats disponible dans le répertoire:

  • /etc/letsencrypt/live/mondomaine.fr/
    • fullchain.pem
    • privkey.pem

Maintenant il faut modifier votre fichier de configuration de site nginx:

Ici deux valeurs à modifier si votre site était déjà en https:

Finalement on relance nginx:


Et voilà c’est terminé.

Bien sûr si ce service ne vous convient pas, vous avez toujours à votre disposition: StartSSL

 

 

Mise en place d’un serveur FTP

Un petit tutoriel concernant la mise en place d’un serveur FTP sous « Linux ». Ce tutoriel se passe sous Ubuntu 13.10 avec proFTPD, en règle générale celui-ci se trouve dans vos dépôts par défaut.

Comme d’habitude avant de démarrer:

Puis:

2 modes de fonctionnements sont proposés: *inetd ou * standalone

Si vous déployez un serveur FTP qui fonctionne seulement quelques fois par jour, le mode inetd est conseillé.
Personnellement le serveur FTP est utilisé pour stocker des photos envoyés par des webcams surveillant des locaux, je préfère donc le mode standalone (en français indépendamment).

Une fois ces étapes effectués, notre serveur FTP est déjà en état de fonctionner. Les utilisateurs valides de votre serveur Ubuntu seront capables de se loguer grâce à leurs identifiants SSH au serveur FTP et d’accéder à passablement l’intégralité des fichiers présent sur le serveur, ce n’est pas ce que je souhaite.

Egalement je voudrais que les utilisateurs Ubuntu de mon serveur puissent se connecter en FTP même si l’accès SHELL leur est refusé. Par défaut proFTPD n’autorise pas cela, nous allons donc devoir modifier ce point ci dans le fichier de configuration  également.

Donc:

Pour décommenter, les lignes: DefaultRoot et RequireValidShell

Ainsi en quelques instants, on a pu déployer un serveur FTP, dont les utilisateurs auront seulement accès à leur dossier home.

Les liens symboliques que auriez éventuellement créés dans ces dossiers ne seront pas affichés dans l’explorateur FTP, ainsi si jamais vous souhaitiez rendre disponible un répertoire en particulier à plusieurs utilisateurs FTP sans avoir à copier les données dans chacun de leurs répertoires, il faudra en passer par la commande:

Pensez-bien à faire attention aux droits appliqués sur vos fichiers, répertoires.

Plus d’infos:

 

Tout ça c’est bien sympa, mais il paraît qu’avec TLS c’est mieux…. cependant dans mon cas, l’utilisation de caméra netgear ne supportant pas le FTPs, m’a incité à ne pas le mettre en place.

 

 

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)

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:

 

 

 

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:

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/