Installer cockpit sur son serveur Linux + Configuration de Nginx
3 min read

Installer cockpit sur son serveur Linux + Configuration de Nginx

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.

💡
Il faut penser à créer une rediréctionDNS de type A vers votre adresse IP publique.

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!