LXC : cas pratique d’un site web

Magazine
Marque
SysOps Pratique
Numéro
131
Mois de parution
mai 2022
Spécialité(s)


Résumé

L’informatique, c’est vite compliqué. Pour vous simplifier la vie, pensez au principe KISS [1]. Dans le monde des containers, LXC c’est un bon vieux chroot (une fonctionnalité UNIX de 1979), avec une sécurité améliorée par l’utilisation des « control groups » (ou « cgroups », qui datent de 2007) . Nous allons les découvrir via un cas pratique : l’installation d’un site web.


Les commandes de cet article ont été réalisées sur une Debian 11 (Bullseye). Elles doivent être exécutées sous le compte root, comme le montre l’invite #. Debian fournit une documentation LXC sur son wiki officiel : [4].

Les containers sont de plus en plus utilisés en entreprise, car ils amènent de nombreux avantages :

  • portabilité : un container est indépendant de la distribution hôte, et de l’architecture (locale ou cloud) ;
  • sécurité : en cas d’attaque et de compromission du container, il est plus difficile de compromettre la machine hôte (surtout en mode non privilégié) ;
  • rapidité : parce qu’il n’y a pas d‘émulation, un container se crée en moins d’une minute, se lance en quelques secondes, et s’exécute comme une application native ;
  • scalabilité : si les…
La suite est réservée aux abonnés. Il vous reste 97% à découvrir.
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Envie de lire la suite ? Rejoignez Connect
Je m'abonne maintenant
Références

[1] Faire simple : https://fr.wikipedia.org/wiki/Principe_KISS/

[2] Cédric Pellerin, « LXC, l’autre star des conteneurs », Linux Pratique n°117, janvier 2020 :
https://connect.ed-diamond.com/Linux-Pratique/lp-117/lxc-l-autre-star-des-conteneurs

[3] Cédric Pellerin, « LXC, les options avancées utiles en production », Linux Pratique n°118, mars 2020 :
https://connect.ed-diamond.com/Linux-Pratique/lp-118/lxc-les-options-avancees-utiles-en-production

[4] Le wiki officiel de Debian : https://wiki.debian.org/fr/LXC

[5] Les principes généraux de sécurité dans LXC : https://linuxcontainers.org/lxc/security/

[6] Tout sur LVM : https://tldp.org/HOWTO/LVM-HOWTO/

[7] Une liste d’images de distributions disponibles : http://images.linuxcontainers.org/

[8] Serveur de clefs : https://linuxcontainers.org/lxc/getting-started/

[9] Comment convertir un container privilégié : https://wiki.archlinux.org/index.php?title=Linux_Containers#Converting_a_privileged_container_to_an_unprivileged_container

[10] Le code source de uidmapshift :
https://bazaar.launchpad.net/%7Eserge-hallyn/+junk/nsexec/view/head:/uidmapshift.c

[11] Un autre outil pour passer un container en mode non privilégié :
https://github.com/unmanarc/lxc-remap

[12] Installation d’Apache sur Alpine : https://wiki.alpinelinux.org/wiki/Apache

[13] La documentation officielle des cgroups v2 :
https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html

[14] Une rare documentation en français sur la v2 :
https://www.linuxembedded.fr/2021/11/limiter-les-ressources-dune-ligne-de-commande-avec-systemd

[15] La documentation de NGINX https://nginx.org/en/docs/http/load_balancing.html

[16] Un métasite de recherche de package, quel que soit le format : https://pkgs.org

[17] Éric Gerbier, «Faites-vous de bonnes sauvegardes ?», Linux Pratique HS n°51, juin 2021 :
https://connect.ed-diamond.com/Linux-Pratique/lphs-051/faites-vous-de-bonnes-sauvegardes

[18] Éric Gerbier, «Tomoyo, le contrôle d’accès facile», Linux Magazine n°235, mars 2020 :
https://connect.ed-diamond.com/GNU-Linux-Magazine/glmf-235/tomoyo-le-controle-d-acces-facile

[19] L’essentiel sur les capabilities : https://linux-audit.com/linux-capabilities-101/

[20] Infrastructure as Code : https://fr.wikipedia.org/wiki/Infrastructure_as_code

[21] Ansible lxc_container : https://docs.ansible.com/ansible/latest/collections/community/general/lxc_container_module.html

[21] Ansible LXC : https://docs.ansible.com/ansible/latest/collections/community/general/lxc_connection.html

[23] Une solution de virtualisation : https://pve.proxmox.com/wiki/Linux_Container

[24] https://doc.ubuntu-fr.org/lxc - https://wiki.gentoo.org/wiki/LXC - https://wiki.archlinux.org/title/Linux_Containers



Article rédigé par