Qui ne s'est jamais fait avoir à vouloir se connecter en ssh à une machine qui est inaccessible derrière un pare-feu? Ou alors de vouloir accéder à un des services hébergés sur cette machine sans pouvoir ouvrir de port public?

Alors bien entendu, on pourrait mettre en place un vpn, qu’il soit intégré dans le routeur ou en installant un serveur OpenVpn sur le réseau. Seulement ce n’est pas toujours possible, et ce n’est pas toujours utile non plus…

Ici je vais vous présenter une solution qui nécessite uniquement un serveur ssh avec un port ouvert sur le wan. Les autres machines pourrons se connecter à celle ci, qui centralisera alors les connexions.

En se connectant, les machines vont créer une connexion persistante sur un port spécifique (nous aurons à la relancer si elle est coupée pour une raison x ou y), et c’est à travers cette connexion que les autres machines pourrons se connecter.

Voici un schéma de ce à quoi cela devrait ressembler:

Schéma réseau - connexion ssh derrière un pare-feu

Nous avons ici deux sites distants :

  • Le site A :
    • Qui possède deux machines sur son réseau, auxquelles nous voulons accéder pour la démonstration
    • Tout les ports sont bloqués en entrée...

Aujourd'hui nous allons rapidement parler de la mise en place d'http2 dans un conteneur Docker prévu pour faire tourner GRAV.

Certains le savent déjà, j'utilise le CMS Grav (que je recommande vivement) pour faire tourner ce site, ainsi que plusieurs autres.

Récemment, j'ai donc travaillé sur l'image docker que j'utilise pour en mettre à jour les composants principaux :

  • Debian : passage à la version Stretch
  • Apache : utilisation de la version 2.4.25 (à la date d'écriture de cet article)
  • Php : utilisation de php7 au lieu de php5

Avec toutes ces mises à jour, difficile de ne pas être tenté d'activer l'http2 avec! Je vais donc vous montrer ici comme faire, et comment vérifier que l'http2 fonctionne ensuite!

Http2 dans la console de chrome

Création de l'image docker

Il n'y a absolument rien de compliqué dans tout ça, il nous suffit d'activer l'extension, et de configurer le vhost de manière adéquate.

Vous pouvez retrouver l'intégralité des fichiers nécessaires sur github à cette adresse : Projet sur github

Je vais vous montrer ici la configuration de certains fichiers uniquement, il vous faudra donc aller sur github pour aller chercher le reste.

Commençons par le Dockerfile :

FROM debian:stretch
MAINTAINER Nathan Boudou <contact@adiuvo.fr>

USER root
RUN DEBIAN_FRONTEND=noninteractive...

Pour répondre à mes besoins et à ceux de mes clients, j'ai décidé de créer un framework Selenium qui aurait pour but de simplifier le reporting des tests effectués.

Ainsi, j'ai créé Kissenium. Pourquoi Kissenium? Parce que c'est la contraction du principe KISS et du mot Selenium.

Bien qu'étant encore en version beta, il permet un reporting assez fin (logs détaillés et séparés en fonction des tests, prise de captures d'écrans lors d'un échec, enregistrement vidéo des tests effectués) qui facilite le travail des testeurs.

Kissenium

Pour faciliter la vie de ce logiciel, et son évolution future, il a été placé dans github sous licence Apache 2.0.

Ainsi chacun est libre de contribuer à Kissenium, mais aussi et surtout de l'utiliser.

Bien qu'il n'y ai pas de roadmap de vraiment définie, il y a certaines fonctionnalités qui devraient être implémentées dans le futur :

  • Fonctionnement avec Selenium Grid,
  • Mode esclave : lancer Kissenium à l'écoute d'une page web pour lancer les tests lors de la demande. Ceci à pour but d'utiliser un nombre important de machines afin de tester la montée en charge d'une application web,
  • Mode démo : afficher des alertes dans la page web, et...