Installer cockpit sur son serveur Linux + Configuration de Nginx
Qu'est-ce que cockpit ?
Cockpit est une interface graphique via navigateur web, open-source, destiné aux néophyte de linux comme aux administrateurs aguerris permettant d'administrer son serveur sous linux à distance. Celui-ci offre une manière d'effectuer des tâches simples d'administration.
Il est notamment possible grâce à Cockpit de gérer les services, les comptes utilisateurs, le pare-feu, arrêter ou redémarrer son système, gérer ses périphériques ou bien encore, utiliser directement un terminal dans l'interface graphique.
Si le projet vous intéresse, je vous invite à vous rendre sur la documentation officielle qui vous permettra d'approfondir toutes les possibilités offertes par Cockpit.
Installation de Cockpit
Pour installer Cockpit, celui-ci est nativement géré par la plupart des gestionnaires de paquet.
Sur des distributions basées sur Debian, ouvrer un terminal est entré la commande suivante :
sudo apt install cockpit
Vous pouvez vérifier que celui-ci est bien installé avec la commande :
systemctl is-active cockpit
Si celui-ci n'est pas activé, il faut démarrer le service à l'aide de la commande :
systemctl start cockpit
Accès à l'interface web de Cockpit
Si le service de cockpit est actif, il vous suffit maintenant de taper l'adresse IP de votre serveur suivi du port 9090 (port par défaut de Cockpit).
http://<adresse.ip.du.serveur>:9090 => http://192.168.1.10:9090
Configuration de Nginx pour accéder à Cockpit via à sous-domaine
Pour accéder à Cockpit depuis une adresse web, il faudra configurer nginx afin de diriger le traffic provenant du port 80 (ou 443 en HTTPS) vers le port 9090.
Pour cela, il faut ajouter une redirection à Nginx.
sudo touch /etc/nginx/sites-available/cockpit.votresousdomaine.ext
sudo nano /etc/nginx/sites-available/cockpit.votresousdomaine.ext
Configuration de cockpit.votresousdomaine.ext à copier/coller :
server {
listen 80;
listen [::]:80;
#cockpit.votresousdomaine.ext à remplacer pas votre domaine.
server_name cockpit.votresousdomaine.ext;
access_log /var/log/nginx/cockpit.log;
location / {
# Required to proxy the connexion to Cockpit
proxy_pass http://127.0.0.1:9090;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
# Required for web sockets to function
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Pass ETag header from Cockpit to clients.
# See: https://github.com/cockpit-project/cockpit/issues/5239
gzip off;
}
}
Il vous faut ensuite à créer un fichier de configuration (si celui-ci n'existe pas déjà) pour cockpit à l'emplacement suivant /etc/cockpit/cockpit.conf
et de copier la configuration suivante :
[WebService]
Origins = https://cockpit.votresousdomaine.ext wss://cockpit.votresousdomaine.ext
ProtocolHeader = X-Forwarded-Proto
Enfin, il ne vous reste qu'à crée un lien symbolique de votre fichier de configuration nginx depuis /etc/nginx/sites-available vers /etc/nginx/sites-enable et redémarrer nginx.
ln -s /etc/nginx/sites-available/cockpit.votresousdomaine.ext /etc/nginx/sites-enabled/
systemctl restart nginx
Vous devriez normalement avoir accès à cockpit depuis votre nom de domaine.
(Optionnel) Securiser Cockpit avec un accès HTTPS
Si vous voulez accéder à Cockpit de manière sécurisée, il est nécessaire de signer un certificat SSL avec Lets Encrypt. Pour cela, je vous conseille d'installer Certbot:
sudo apt install certbot python3-certbot-nginx
Et signer votre certificat avec la commande suivante :
sudo certbot --nginx -d /etc/nginx/sites-available/cockpit.votresousdomaine.ext
Et voilà, votre Cockpit est maintenant accessible et sécurisé.
Bonne administration à vous!