Cockpit / Debian

Synoptique - Cockpit Debian - Mémento 12.1
Synoptique - Cockpit

Mémento 12.1 - Cockpit

Cockpit permettra de gérer à distance les systèmes Linux des VM du réseau virtuel, ceci au travers d'une interface Web en utilisant le nom de domaine loupvirtuel.fr.

La gestion des VM sera centralisée depuis un serveur Cockpit primaire installé sur la VM srvdmz.

1 - Accès distant sur le réseau virtuel

Le domaine loupvirtuel.fr n'étant pas public, vous ne pouvez pas accéder au site Web du réseau virtuel depuis Internet en tapant son URL dans le champ adresse d'un navigateur Web.

En revanche, vous pouvez simuler cet accès Internet depuis un PC situé sur votre réseau local.

Par exemple, pour un PC Windows :

- Etape 1
Entrez sur ce PC, comme dans le mémento Contrôle à distance & 2.3, les 3 routes statiques permettant de joindre les VM du réseau local virtuel.

[C:\~] route add -p 192.168.2.0 mask 255.255.255.0 192.168.x.w

[C:\~] route add -p 192.168.3.0 mask 255.255.255.0 192.168.x.w

[C:\~] route add -p 192.168.4.0 mask 255.255.255.0 192.168.x.w

192.168.x.w est l'IP de la carte réseau RED d'IPFire.
Le -p déclare les routes comme étant permanentes.

- Etape 2
Ajoutez ensuite ces 2 lignes au fichier DNS C:\Windows\System32\drivers\etc\hosts :

# loupvirtuel.fr
192.168.4.2 loupvirtuel.fr

- Etape 3
Finissez en testant l'URL https://loupvirtuel.fr :

Voilà, vous êtes prêt pour installer et utiliser Cockpit.

2 - Installation d'un Cockpit primaire sur srvdmz

Cockpit permet l'administration de son système Linux (Cockpit primaire) ainsi que l'administration centralisée d'autres systèmes Linux (Cockpits secondaires).

Les onglets de son interface Web proposent de :

-- Partie Système --

  • Visualiser l'état du matériel -> Aperçu
  • Lire les journaux système -> Journaux
  • Visualiser les disques -> Stockage
  • Visualiser le trafic réseau -> Réseau
  • Gérer les comptes utilisateurs -> Comptes
  • Gérer les services -> Services

-- Partie Outils --

  • Gérer les applications -> Applications
  • Gérer les MAJ -> Mises à jour de logiciel
  • Travailler avec un Terminal Web -> Terminal

Il est également possible, depuis cette interface, de :

  • Gérer d'autres serveurs Linux (centralisation)
  • Gérer, créer des VM (plugin cockpit-machines)
  • Gérer des CTN Podman (plugin cockpit-podman)
  • Etc…

Pour installer Cockpit sur la VM srvdmz, entrez cette Cde :

- - Debian 12 - -

[srvdmz@srvdmz] sudo apt install cockpit cockpit-pcp

- - Debian 13 - -

[srvdmz@srvdmz] sudo apt install cockpit

3 - Configurations Port/Pare-feu/SSL

3.1 - Port utilisé par Cockpit

Le numéro de port par défaut de Cockpit est le 9090. Vous allez, par sécurité, modifier celui-ci.

Commencez par créer un dossier cockpit.socket.d :

[srvdmz@srvdmz] cd /etc/systemd/system/
[srvdmz@srvdmz] sudo mkdir cockpit.socket.d

Puis, générez dans celui-ci un fichier listen.conf :

[srvdmz@srvdmz] cd cockpit.socket.d
[srvdmz@srvdmz] sudo nano listen.conf 

et entrez ceci pour déclarer l'usage du port 9528 :

[Socket]
ListenStream=
ListenStream=9528

Pour finir, rechargez la nouvelle configuration systemd et relancez la partie réseau de Cockpit :

[srvdmz@srvdmz] sudo systemctl daemon-reload
[srvdmz@srvdmz] sudo systemctl restart cockpit.socket

Le serveur Cockpit de la VM srvdmz écoutera ainsi sur le port 9528.

3.2 - Pare-feu

Autorisez l'usage du port 9528 au niveau de la VM IPFire (Ref: Mémento DNS split) :

3.3 - SSL

Cockpit fournit de base sous Debian 12 (Pas sous Debian 13) un certificat SSL auto-signé pour les connexions HTTPS entrantes, une alerte de sécurité est alors affichée par les navigateurs Web.

Vous allez, pour éviter cela, utiliser le certificat du domaine loupvirtuel.fr (Ref : § 5 du mémento LAMP HTTPS CMS : Partie 2).

Commencez par copier ces 2 fichiers SSL dans le dossier /etc/cockpit/ws-certs.d :

[srvdmz@srvdmz] cd /etc/ssl
  
[srvdmz@srvdmz] sudo cp loupvirtuel.crt /etc/cockpit/ws-certs.d 
  
[srvdmz@srvdmz] sudo cp loupvirtuel.key /etc/cockpit/ws-certs.d

Renommez, si présent dans le dossier ci-dessous, le certificat auto-signé de Cockpit :

[srvdmz@srvdmz] cd /etc/cockpit/ws-certs.d
  
[srvdmz@srvdmz] sudo mv 0-self-signed.cert 0-self-signed.cert-save

Puis si sous Debian 12, modifiez les droits sur les 2 fichiers importés comme suit :

[srvdmz@srvdmz] sudo chown root:cockpit-ws loupvirtuel.*

Sous Debian 13, les permissions d'accès aux fichiers peuvent rester à root:root.

Redémarrez Cockpit :

[srvdmz@srvdmz] sudo systemctl restart cockpit
[srvdmz@srvdmz] sudo systemctl status cockpit

Cockpit est maintenant accessible localement depuis l'URL :
https://loupvirtuel.fr:9528

Connectez-vous en tant qu'utilisateur srvdmz.

La page d'accueil de Cockpit doit s'afficher :
-> Bouton Activez l'accès administrateur (Turn on ... access)

Une fenêtre Passer à l’accès administrateur (Switch to ...) s'ouvre :
-> Mot de passe de srvdmz : Entrez le MDP de srvdmz
-> Bouton S'authentifier (Authenticate)

Le contenu de la zone de notification, soit celui du fichier /etc/motd, peut maintenant être modifié en cliquant sur l'icône d'édition située dans la zone.

Accédez ensuite au Widget Utilisation :
-> Voir les métriques et l'historique

Cliquez sur le bouton Installer la prise en charge PCP, les métriques apparaîtront au bout de quelques minutes.

Nota : Si vous disposez d'un nom de domaine routé par votre Box Internet sur l'un de vos serveurs, vous pouvez utiliser celui-ci pour joindre depuis Internet le Cockpit de la VM srvdmz, ceci en créant une règle de proxy inverse appropriée.

4 - Interface Web de Cockpit

Observez maintenant le contenu de chacun des modules de Cockpit, soit :

- - Partie Système - -

  • Journaux (Priorité = Erreur et au dessus pour ...)

Contrôle des logs du système, options de filtrage.

  • Stockage

Gestion du stockage, options de gestion RAID et NFS.

  • Réseau

Gestion du réseau, options d'ajout de Lien/Pont/VLAN, etc...

  • Comptes

Gestion des comptes, options de création Groupe/Utilisateur.

  • Services

Gestion des statuts des services, options de filtrage.

- - Partie Outils - -

  • Applications

Gestion des extensions utilisées (plugins).

  • Mises à jour logicielles

MAJ des paquets du système, option de redémarrage.

  • Terminal (très pratique)

Usage de la ligne de Cde pour administrer le système.

La déconnexion de Cockpit s'effectue depuis le menu Session situé en haut et à droite de la page Web.

5 - Gestion centralisée des autres VM du réseau

Il est possible de gérer l'ensemble des VM et CTN Podman du réseau local virtuel depuis le Cockpit installé sur la VM srvdmz.

Pour cela, il faut rendre les VM à gérer accessibles en protocole SSH (Ref: Mémento Accès distant SSH sur la VM OpenvSwitch) et installer Cockpit sur celles-ci.

SSH ne propose pour l'instant que la lecture seule sur les VM distantes, il faudra toujours cliquer sur le bouton Activez l'accès administrateur de celles-ci pour les gérer.

SSH augmentera la sécurité entre les VM et évitera d'avoir à saisir les MDP de façon répétée.

Les VM à gérer depuis le Cockpit de la VM srvdmz seront à créer en tant que nouveaux hôtes.

5.1 - Ajout de srvlan (premier nouvel hôte)

Commencez par installer un serveur SSH sur la VM srvlan :

[srvlan@srvlan] sudo apt install openssh-server
[srvlan@srvlan] sudo systemctl status sshd

Editez ensuite le fichier de configuration du serveur :

[srvlan@srvlan] sudo nano /etc/ssh/sshd_config

et remplacez la ligne #Port 22 par Port 222.

Relancez le service SSH pour traiter la modification :

[srvlan@srvlan] sudo systemctl restart sshd

et installez Cockpit sur la VM srvlan comme pratiqué sur la VM srvdmz soit :

[srvlan@srvlan] sudo apt install cockpit

- - Debian 12 - -
Connectez-vous ensuite sur le Cockpit de srvdmz et cliquez sur le menu déroulant situé en haut et à gauche de la page Web :
-> Bouton Ajouter un nouvel hôte

Une fenêtre Ajouter un nouvel hôte s'ouvre :
-> Hôte : srvlan.intra.loupvirtuel.fr:222
-> Nom d'utilisateur : srvlan
-> Couleur : Choisissez une couleur pour la VM
-> Bouton Ajouter

Une fenêtre Nouvel hôte s'ouvre :
-> Bouton Accepter la clé et se connecter

Une fenêtre Connectez-vous à srvlan@... s'ouvre :
-> Mot de passe : MDP de srvlan
-> Cochez Créer une nouvelle clé SSH et l'autoriser

Le fenêtre ouverte s'étend :
-> Mot de passe clé : MDP de srvdmz et non de srvlan
-> Confirmer ... de passe de la clé : MDP de srvdmz
-> Bouton Connexion

L'hôte srvlan@... est ajouté dans le menu déroulant situé en haut et à gauche de la page Web.

Fermez la connexion courante depuis le menu Session situé en haut et à droite de la page Web.

Fin Debian 12

- - Debian 13 - -
Dans les versions récentes de Cockpit, la gestion multi-hôtes n'est plus activée par défaut, il faut créer un fichier cockpit.conf :

[srvdmz@srvdmz] sudo nano /etc/cockpit/cockpit.conf

y entrer le contenu suivant :

[WebService]
AllowMultiHost=true

et redémarrer Cockpit pour profiter de cette gestion :

[srvdmz@srvdmz] sudo systemctl restart cockpit

Connectez-vous ensuite sur le Cockpit de srvdmz et cliquez sur le menu déroulant situé en haut et à gauche de la page Web :
-> Bouton Ajouter un nouvel hôte

Une fenêtre Ajouter un nouvel hôte s'ouvre :
-> Hôte : srvlan.intra.loupvirtuel.fr:222
-> Nom d'utilisateur : srvlan
-> Couleur : Choisissez une couleur pour la VM
-> Bouton Ajouter

Une fenêtre Connecter à srvlan.intra.loupvirtuel.fr ? s'ouvre :
-> Bouton Connecter

Une fenêtre Nouvel hôte: srvlan.intra.loupvirtuel.fr s'ouvre :
-> Bouton Faire confiance à l'hôte et l'ajouter

Une fenêtre Connectez-vous à srvlan@srvlan.intra... s'ouvre :
-> Mot de passe : MDP de srvlan
-> Connexion automatique : Cochez Créer ... clé SSH et l'autoriser
-> Mot de passe clé : MDP de srvdmz et non de srvlan
-> Confirmer le mot de passe de la clé : MDP de srvdmz
-> Bouton Connexion

La connexion sur la VM srvlan s'établit et l'hôte est ajouté dans le menu déroulant situé en haut et à gauche de la page Web.

Fermez la connexion courante depuis le menu Session situé en haut et à droite de la page Web.

Fin Debian 13

Remarques diverses :
- Un hôte srvlan.intra.loupvirtuel.fr a été ajouté dans le fichier /home/srvdmz/.ssh/known_hosts.

- 2 clés SSH id_rsa et id_rsa.pub ont été créées sur srvdmz dans /home/srvdmz/.ssh/.

- La clé id_rsa.pub a été copiée comme authorized_keys sur srvlan dans /home/srvlan/.ssh/.

- Sous Debian 13 le nouvel hôte srvlan apparaît dans le fichier /etc/cockpit/machines.d/99-webui.json de la VM srvdmz.

Reconnectez-vous maintenant sur le Cockpit de la VM srvdmz et sélectionnez ensuite l'hôte srvlan, la liaison sera directement établie sans demande de MDP.

Les connexions futures depuis le Cockpit de la VM srvdmz sur celui de la VM srvlan se feront sans demande de MDP, ceci grâce à la clé SSH.

5.2 - Ajout d'ovs (second nouvel hôte)

Un serveur SSH écoute déjà sur le port 222.

Installez seulement Cockpit avec la même Cde que celle utilisée sur les VM srvdmz et srvlan.

Nota : Ajoutez le paquet cockpit-podman qui permettra de gérer les conteneurs actifs sur la VM ovs.

Connectez-vous enfin sur le Cockpit de la VM srvdmz et cliquez sur le menu déroulant situé en haut et à gauche de la page Web :
-> Bouton Ajouter un nouvel hôte

- - Exemple pour Debian 13 - -
Une fenêtre Ajouter un nouvel hôte s'ouvre :
-> Hôte : ovs.intra.loupvirtuel.fr:222
-> Nom d'utilisateur : switch
-> Couleur : Choisissez une couleur pour la VM
-> Bouton Ajouter

Une fenêtre Connecter à ovs.intra.loupvirtuel.fr ? s'ouvre :
-> Bouton Connecter

Une fenêtre Nouvel hôte: ovs.intra.loupvirtuel.fr s'ouvre :
-> Bouton Faire confiance à l'hôte et l'ajouter

Une fenêtre Connectez-vous à switch@ovs.intra... s'ouvre :
-> Mot de passe : MDP de switch
-> Connexion automatique : Cochez cette fois Autoriser la clé SSH
-> Bouton Connexion

La connexion sur la VM ovs s'établit et l'hôte est ajouté dans le menu déroulant situé en haut et à gauche de la page Web.

Vérifiez ensuite le contenu du fichier 99-webui.json et modifiez le comme suit si l'hôte ovs n'est pas présent :

{
  "srvlan.intra.loupvirtuel.fr": {
    "visible": true,
    "color": "#ffbe6f",
    "address": "srvlan.intra.loupvirtuel.fr",
    "user": "srvlan",
    "port": "222"
  },
  "ovs.intra.loupvirtuel.fr": {
    "visible": true,
    "color": "#ff0000",
    "address": "ovs.intra.loupvirtuel.fr",
    "user": "switch",
    "port": "222"
  }
}

Fermez enfin la connexion courante depuis le menu Session situé en haut et à droite de la page Web.

L' hôte ovs a été ajouté dans le fichier /home/srvdmz/.ssh/known_hosts.

La clé SSH publique id_rsa.pub de la VM srvdmz a été copiée comme authorized_keys sur la VM ovs.

Les connexions futures sur l'hôte switch s'établiront directement sans demande de MDP.

Nota : Cockpit affiche les conteneurs Podman rootless et rootfull sous réserve d'être en Accès administrateur.

5.3 - Connexion directe sur Cockpit secondaire

Au préalable, ajoutez Cockpit et un serveur SSH sur les VM debian-vm*.

L'accès direct sur un Cockpit secondaire se fera au travers du Cockpit primaire de la VM srvdmz.

Pour, par exemple, joindre le Cockpit de debian-vm1 :
-> Accédez à la fenêtre de login du Cockpit de la VM srvdmz
-> Remplissez ensuite les champs comme ci-dessous

-> Cliquez sur le bouton Connexion

Une fenêtre Nouvel hôte s'ouvre :
-> Bouton Accepter la clé et se connecter

La connexion est établie, l'acceptation de la clé SSH ne sera plus demandée à l'avenir.

6 - Bilan

Cockpit est léger, fiable, sécurisé et son interface Web responsive permet d'administrer un système Linux facilement y compris depuis un smartphone.

La gestion centralisée de plusieurs systèmes Linux est un plus.

Il propose aussi un peu de supervision, ceci en affichant quelques métriques bien utiles sous forme graphique.

Image - Rédacteur


OK, maintenant si une supervision
plus poussée vous intéresse, le
mémento 12.2 vous attend pour
découvrir l'outil Centreon.

Laisser un commentaire