Prérequis
- Un serveur sous Ubuntu 24.04, Debian 13, AlmaLinux 9, Rocky Linux 9, CentOS Stream 9, Fedora 44 ou openSUSE Leap 16 : voir nos VPS au Canada
- Une connexion SSH ouverte en root : Se connecter en SSH à votre VPS
- L'adresse IP publique de votre poste, pour lui réserver l'accès au panneau
Cockpit est la console d'administration web des distributions Linux elles-mêmes : services, journaux, réseau, disques, mises à jour et un terminal, depuis un navigateur, sans rien changer au serveur. Ce guide l'installe depuis les dépôts de votre système, crée l'utilisateur qui s'y connecte, et réserve le panneau à votre adresse. Choisissez votre système ci-dessus. Copiez la commande avec le bouton Copier, collez-la dans votre terminal, et comparez avec le résultat attendu.
1Nommer le serveur et le mettre à jour
Remplacez 203.0.113.42 par l'adresse IP de votre serveur. Le nom d'hôte sera celui du certificat du panneau.
hostnamectl set-hostname serveur.exemple.ca
echo '203.0.113.42 serveur.exemple.ca serveur' >> /etc/hosts
hostname -fserveur.exemple.ca
apt update && apt upgrade -yapt update && apt upgrade -ydnf upgrade -y... Complete!
zypper refresh && zypper -n update2Créer l'utilisateur du panneau
Cockpit refuse root. On se connecte avec un utilisateur du système qui a sudo.
useradd -m -s /bin/bash -G sudo admin
passwd adminuseradd -m -s /bin/bash -G sudo admin
passwd adminuseradd -m -s /bin/bash -G wheel admin
passwd adminuseradd -m -s /bin/bash -G wheel admin
passwd admin3Installer Cockpit et activer son socket
Le paquet vient des dépôts du système ; le socket ouvre le port 9090 et lance le panneau à la première connexion.
apt install -y -t noble-backports cockpit... Setting up cockpit (362-1~bpo24.04.1) ... ...
echo 'deb http://deb.debian.org/debian trixie-backports main' > /etc/apt/sources.list.d/backports.list
apt update && apt install -y -t trixie-backports cockpit... Setting up cockpit (367-1~bpo13+1) ... ...
dnf install -y cockpit... Complete!
zypper -n install cockpit... The following 52 NEW packages are going to be installed: ...
systemctl enable --now cockpit.socket
systemctl is-active cockpit.socketCreated symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket. active (sur Ubuntu, la première ligne n'apparaît pas : le paquet a déjà activé le socket)
4Ouvrir le panneau
curl -sk -o /dev/null -w '%{http_code}\n' https://127.0.0.1:9090/200
- Ouvrez https://203.0.113.42:9090 dans votre navigateur, avec l'adresse IP de votre serveur, en https, et le port.
- Le navigateur avertit que le certificat n'est pas reconnu : Cockpit en a créé un lui-même pour le nom d'hôte. Cliquez sur Avancé, puis Continuer vers le site.
- Identifiant admin, avec le mot de passe de l'étape 2.
5Réserver le panneau à votre adresse
Tout Internet peut ouvrir votre panneau
Le port 9090 répond à toutes les adresses, avec pour seule barrière le mot de passe d'un utilisateur qui a sudo.
Remplacez 198.51.100.7 par l'adresse IP publique de votre poste.
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow from 198.51.100.7 to any port 9090 proto tcp
ufw --force enable
ufw status... Firewall is active and enabled on system startup Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 9090/tcp ALLOW 198.51.100.7 22/tcp (v6) ALLOW Anywhere (v6)
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow from 198.51.100.7 to any port 9090 proto tcp
ufw --force enable
ufw status... Firewall is active and enabled on system startup Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 9090/tcp ALLOW 198.51.100.7 22/tcp (v6) ALLOW Anywhere (v6)
dnf install -y firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=198.51.100.7 port port=9090 protocol=tcp accept'
firewall-cmd --reload
firewall-cmd --list-all | grep -E 'services|rule '... success success success services: dhcpv6-client ssh rule family="ipv4" source address="198.51.100.7" port port="9090" protocol="tcp" accept (Fedora : services: dhcpv6-client mdns ssh, et « Warning: NOT_ENABLED: cockpit » à la deuxième commande, sans effet)
systemctl enable --now firewalld
firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=198.51.100.7 port port=9090 protocol=tcp accept'
firewall-cmd --reload
firewall-cmd --list-all | grep -E 'services|rule '... success success success services: dhcpv6-client ssh rule family="ipv4" source address="198.51.100.7" port port="9090" protocol="tcp" accept
SSH reste ouvert à tous. Le pare-feu est rechargé à chaque démarrage avec ces règles.
curl -sk -o /dev/null -w '%{http_code}\n' --max-time 10 https://203.0.113.42:9090/000 (000 veut dire aucune réponse : c'est le résultat attendu depuis une adresse qui n'est pas la vôtre)
6Les commandes du quotidien
systemctl status cockpit.socketsystemctl restart cockpit.socketjournalctl -u cockpit -n 20cat /etc/cockpit/disallowed-usersss -ltnufw status verboseufw status verbosefirewall-cmd --list-allfirewall-cmd --list-allCockpit se met à jour avec le système, par la commande de l'étape 1.
Erreurs fréquentes
L'image du serveur a été construite sur un autre disque et GRUB demande où se réinstaller : choisissez le disque de la machine (celui que lsblk affiche, en général /dev/sda) ; la mise à jour continue ensuite.
root est dans /etc/cockpit/disallowed-users : le panneau le refuse, quel que soit le mot de passe. Connectez-vous avec l'utilisateur de l'étape 2.
Le mot de passe est celui posé avec passwd admin à l'étape 2. Vérifiez-le en SSH : su - admin.
L'adresse IP publique de votre poste a changé, ou ce n'est pas celle de la règle. Retrouvez-la dans votre session SSH avec echo $SSH_CLIENT, puis rejouez l'étape 5 avec cette adresse.
Sur Fedora, le service cockpit n'était pas ouvert dans firewalld : il n'y avait rien à retirer. La règle par adresse qui suit fait le travail.
Les backports ne sont plus dans vos sources apt. Sur Ubuntu, remettez noble-backports dans la ligne Suites de /etc/apt/sources.list.d/ubuntu.sources ; sur Debian, reprenez l'étape 3, qui ajoute trixie-backports.
Alpine n'a pas de paquet Cockpit. Ce guide s'arrête aux systèmes de la liste des prérequis.
Cockpit a créé un certificat lui-même pour le nom d'hôte, valable 13 mois, dans /etc/cockpit/ws-certs.d. Le chiffrement fonctionne quand même ; pour un certificat reconnu, déposez-y le vôtre au format .cert et .key.
Cockpit en service
Le panneau répond sur le port 9090, réservé à votre adresse, avec l'utilisateur admin. Pour héberger des sites et du courriel depuis un panneau, voyez Installer Webmin ou Installer HestiaCP.