Chap 1. Virtualisation avec KVM/QEMU
Chap 2. Gestion des machines virtuelles avec cockpit
Chap 3. Modules disponible avec la version 225-1 de cockpit
Modules disponible avec la version 225-1 de cockpit
Dans cet article, je vais comparer Debian 11 (bullseye/sid) et CentOS 8.2, dont le premier est installé sur une machine physique et le second, sur une machine virtuelle (VM).
CentOS (Community enterprise Operating System) est une distribution GNU/Linux destinée aux serveurs (et aux postes de travail). Tous ses paquets, à l’exception du logo, sont des paquets compilés à partir des sources de la distribution RHEL (Red Hat Enterprise Linux), éditée par la société Red Hat. Elle est donc quasiment identique à celle-ci et se veut 100 % compatible d’un point de vue binaire. (Wikipedia)
I. Installation de base sur Debian et CentOS pour l’utilisation de cockpit
1.1 Installation
Un avantage de CentOS sur Debian est qu’il est proposé un mode « virtualisation » pour le système hôte lors de l’installation. Ce qui facilitera grandement la prise en charge des outils disponibles pour l’utilisation de cockpit.
Ceci est bien sur, n’est pas le fruit d’un hasard, puisque Redhat est en charge du dévellopement de cockpit.
Une fois cockpit installé, dans la partie « System », il n’y a pas de différence, à part que j’ai préalablement installé les modules « Storage » et « Virtual Machines » sur la machine qui tourne avec Debian.
Par contre, le contenu de « Tools » est différent: CentOS est plus optimisé pour la tâche de serveur hôte pour la virtualisation.
Aussi, noter que tout est à porté de click pour l’installation de modules supplémentaires dans CentOS.
Sur un Debian, les mêmes modules s’installent avec la commande « apt install NOM_DU_MODULE ».
Pour les mise-à-jour, CentOS propose une option pour le faire automatiquement.
Vous pouvez d’ailleurs choisir entre tout mettre à jour, ou juste installer les mises-à-jour de sécurité.
1.2 Les options installées par défaut avec CentOS
Ces options, bien que certaines d’entre elles peuvent être installé sur une machine Debian, ne sont visible que sur les machines Redhat et dérivées, à l’heure d’écriture de ce blog.
1.2.1 Diagnostic Reports
1.2.2 Kernel Dump
kdump d’après wikipedia,
kdump is a feature of the Linux kernel that creates crash dumps in the event of a kernel crash.
Est un fichié créé automatiquement après le crash du noyau.
Je ne vais pas rentrer dans les détails du comment cet outil fonctionne, ou du comment installer les paquets nécessaires à son utilisation. Cependant, je vous recommande vivement de lire les articles de Dedoimedo et du linuxjournal afin de vous familiariser avec cet outil.
J’ai essayé d’activer le « core dump » sous Debian, mais sans succès. Je ne vais pas m’attarder sur ce point puisque ce n’est pas essentiel à mon utilisation de cockpit.
1.2.3 SELinux
Concernant le contrôle d’accès obligatoire (MAC), CentOS a choisi SELinux. Par contre, sur un système Debian, AppArmor est celui installé par défaut. Je cite la documentation sur ubuntu-fr.
apparmor : un outil qui permet de verrouiller les applications en limitant strictement leur accès aux seules ressources auxquelles elles ont droit sans perturber leur fonctionnement. Installation facile sur ubuntu, et mis à jour par canonical. SELinux : qui permet de définir une politique de contrôle d’accès obligatoire aux éléments d’un système basé sur Linux.
Si malgré celà, vous voulez toujours installer SELinux, n’oublier pas de supprimer AppArmor avant de le faire. (cf. ici et là)
1.3 Parefeux
Première règle avant de toucher aux parefeux. Si vous ne savez pas ce que vous faites, ou si vous êtes dans un environnement de lab, vous n’avez pas besoin d’installer ou d’activer votre parefeux.
Firewalld est installé par défaut avec CentOS.
Vous pouvez avoir l’option de parefeux avec les mêmes configurations dans Debian.
Dans un premier temps, installer firewalld.
$ sudo apt install firewalld
Pour la configuration du parefeux, je vais me contenter d’appliquer les mêmes options que celles définies dans CentOS.
Ensuite, activer le parefeux et faites en sorte que son activation soit persistant après redémarrage de l’ordinateur.
$ sudo systemctl enable firewalld
$ sudo systemctl start firewalld
Vérifier que le service est activé,
$ sudo systemctl status firewalld
Dans cockpit, au niveau de l’option « network », vous devriez maintenant voir l’option « firewall ».
Noter que la zone libvirt a été créé par défaut, alors que je m’attendais à avoir uniquement l’interface publique.
D’après la documentation,
If firewalld is active on the host, libvirt will attempt to place the bridge interface of a libvirt virtual network into the firewalld zone named « libvirt » (thus making all guest->host traffic on that network subject to the rules of the « libvirt » zone).
En gros, si firewalld est actif, libvirt va tenter de placer le ou les interfaces bridges (virbr0, etc.) dans la zone « libvirt ».
Ensuite, vous pouvez ajouter les ports à débloquer au niveau du parefeux dans l’interface réseau de cockpit.
J’ai du rajouter le port 443 dans la zone publique, afin de pouvoir accéder au Cockpit de la machine Debian, à partir d’une autre machine sur le même réseau.
II. Liste des modules cockpit disponible dans Debian/CentOS
Debian:
$ apt search ^cockpit-*
Sorting... Done
Full Text Search... Done
cockpit/testing,now 223-1 all [installed]
Web Console for Linux servers
cockpit-389-ds/testing 1.4.4.3-1 all
Cockpit user interface for 389 Directory Server
cockpit-bridge/testing,now 223-1 amd64 [installed,automatic]
Cockpit bridge server-side component
cockpit-dashboard/testing 223-1 all [installed]
Cockpit remote server dashboard
cockpit-doc/testing 223-1 all
Cockpit deployment and developer guide
cockpit-machines/testing,now 223-1 all [installed]
Cockpit user interface for virtual machines
cockpit-networkmanager/testing,now 223-1 all [installed,automatic]
Cockpit user interface for networking
cockpit-packagekit/testing,now 223-1 all [installed,automatic]
Cockpit user interface for packages
cockpit-pcp/testing 223-1 amd64 [installed]
Cockpit PCP integration
cockpit-storaged/testing,now 223-1 all [installed,automatic]
Cockpit user interface for storage
cockpit-system/testing,now 223-1 all [installed,automatic]
Cockpit admin interface for a system
cockpit-tests/testing 223-1 amd64
Tests for Cockpit
cockpit-ws/testing,now 223-1 amd64 [installed,automatic]
Cockpit Web Service
CentOS:
III. Installation des modules cockpit dans Debian
3.1 Module Web Socket (cockpit-ws)
Par défaut, le port pour accéder à la page de cocket se fait sur le port 9090. Le module cockpit-ws fait parti des modules installés par défaut, une fois cockpit installé sur votre machine.
Vu que j’ai installé KVM et que je n’ai pas l’intention d’installer un autre server web, je vais utiliser le port 443 en suivant les étapes ici, tout en gardant l’option avec le port 9090.
$ sudo mkdir /etc/systemd/system/cockpit.socket.d $ sudo cat << EOF > /etc/systemd/system/cockpit.socket.d/listen.conf [Socket] ListenStream= ListenStream=443 ListenStream=9090 EOF $ sudo systemctl daemon-reload $ sudo systemctl restart cockpit.socket
Accès à cockpit sur le port 443,
3.2 Module Performance Co-Pilot (cockpit-pcp)
Module pour visualiser la performance du système hôte, allant de 5 minutes à une semaine.
$ sudo apt install cockpit-pcp
3.3 Module Dashboard (cockpit-dashboard)
Avec le module Dashboard, il est possible de visualiser sur la même interface, les différentes resources utilisées par chacun des serveurs (physique et/ou virtuel).
$ sudo apt install cockpit-dashboard
IV. Module à venir dans Debian (cockpit-podman)
Ce module permet de gérer les containers.
Avec CentOS, ce module s’installe et se lance en quelques clicks.
Côté Debian, le projet avance doucement.
Sources
Getting Started with Cockpit
Linux Kernel Security (SELinux vs AppArmor vs Grsecurity)
SELinux Setup
Installing SELinux on Debian 10
Feature: Firewall
Servermanagement with Cockpit on Debian 10
How To Set Up a Firewall Using firewalld on CentOS 8
Collecting and analyzing Linux kernel crashes – Kdump
Oops! Debugging Kernel Panics
Debian enable kernel dump