Thématiques principales

mardi 26 novembre 2019

SSL, TLS et OpenSSL

SSL c’est l’acronyme de Secure Socket Server [ssl]. En version 3 depuis 96 il a en fait été aujourd’hui remplacé par TLS [tls] Transport Security Layer en version 1.2 [rfc5246] depuis 2008 mais a connu une version 1.3 [rfc8446] dernièrement en 2018. Malgré cette évolution, par abus de langage, tout le monde continu d’utiliser le terme SSL.

Mais qu’est ce que SSL?

SSL/TLS est un protocole permettant la sécurisation d'échange réseau à un niveau applicatif (par opposition à une sécurisation qui aurait lieu à un niveau réseau comme avec Ipsec [Ipsec] mais on y reviendra)

Massivement utiliser pour le web en permettant la déclinaison de [http] en [https] ou [ftp] en [ftps] (attention à ne pas confondre avec sftp qui est un ftp dans ssh [sftp-ssh]), le protocole propose de compléter le protocole à sécuriser en y ajoutant ses propres échanges.

samedi 23 novembre 2019

Reseau : Iptables et réseaux docker

Maintenant que nous avons vu le principe de réécriture d’adresse [1] nous allons maintenant nous intéresser à la vraie finalité de cette suite d’article sur Iptables: comment docker réalise ses réseaux virtuels?

À coup sûr vous l’aurez compris, Iptables va avoir un rôle. Mais avant d’en arriver à cela, reprenons la construction d’un nouveau réseau virtuel docker.

Par défaut, les réseaux docker sont au nombre de 3 [2]:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
ff147d84a29e        bridge              bridge              local
8932db1d0751        host                host                local
9a54dab98d45        none                null                local  

Ces trois types de réseau sont gérés par trois drivers spécifiques:
  • le driver null permettant d’isoler complètement les conteneurs qui serait associé à ce réseau en ne lui ne leur associant aucune adresse ip.
  • le drivers host qui permet de partager l’interface réseau de la machine hôte avec les conteneurs associé à ce réseau.
  • le driver bridge qui permet ici de construire une nouvelle interface réseau sur la machine hôte (un bridge entre autre! [3])
C’est ce dernier driver qui va nous intéresser. En effet en construisant un bridge, docker va construire une interface réseau dédiée au réseau construit spécifiquement pour l’ensemble des conteneurs qui seront déployés dans celui ci. Et afin de permettre à ces conteneurs de communiquer avec le monde extérieur, alors le bridge va servir de gateway et ce grâce …. à IpTable!