Vous avez décidé d’utiliser GitLab pour la gestion de votre projet, mais vous ne savez pas comment l’installer en toute sécurité ? Non seulement l’installation de GitLab est un processus complexe, mais si elle n’est pas réalisée correctement, vos données pourraient être en danger. Mais ne vous inquiétez pas, vous êtes au bon endroit !
Dans ce tutoriel, vous apprendrez l’ensemble du processus d’installation sécurisée de GitLab, afin de configurer le chiffrement SSL et d’optimiser les performances de GitLab.
Ça vous intéresse ? Alors plongez directement dedans !
Prérequis
Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d’avoir les éléments suivants :
- A Linux server with root access – This demo uses Ubuntu 20.04 LTS, but any Linux distribution will work.
- A fully qualified domain name (FQDN) pointing to your server.
- Let’s Encrypt installé sur le serveur.
- Exigences minimales : 8 Go de RAM, une bande passante de 50 à 100 Mb/s, un processeur de 2 GHz et 20 Go d’espace disque.
Installation de GitLab Community Edition
Maintenant que vous disposez d’un FQDN et que votre serveur est prêt, il est temps d’installer GitLab. Il existe plusieurs façons d’installer GitLab, comme l’utilisation du package Omnibus ou la compilation à partir des sources. Mais ce tutoriel se concentre sur l’installation de GitLab à l’aide du dépôt GitLab de son développeur.
GitLab est disponible en deux distributions:
- GitLab Community Edition (CE) – pour les utilisateurs qui préfèrent une version open-source et prise en charge par la communauté de GitLab.
- GitLab Enterprise Edition (EE) – pour les utilisateurs qui ont besoin des fonctionnalités supplémentaires fournies par GitLab Enterprise Edition.
Mais cette démonstration utilise la Community Edition pour tester l’application dans votre environnement de développement.
1. Ouvrez votre terminal et exécutez la commande apt update
ci-dessous pour vous assurer que votre système a accès à toutes les dernières mises à jour logicielles.
La commande apt update
met à jour les fichiers d’index des paquets utilisés par l’utilitaire apt
pour récupérer des informations sur les paquets disponibles.

2. Ensuite, exécutez la commande apt install
ci-dessous pour télécharger (curl
) et installer
les dépendances requises suivantes pour votre installation de GitLab:
- le paquet
openssh-server
– contient le démon du serveur OpenSSH et les outils associés, tels que l’outil de gestion des clés hôtes et le serveur, pour permettre l’accès distant aux utilisateurs. - Le package
ca-certificates
– Contient une liste de certificats CA. Ce package fournit les fichiers nécessaires pour activer le support HTTPS sur votre serveur.

3. Exécutez la commande curl
ci-dessous pour télécharger (curl
) le script d’installation depuis GitLab (https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce
). La commande enregistre ensuite le script d’installation en tant que script shell (script.deb.sh
) et l’exécute en tant que superutilisateur (sudo bash
).
Une fois que la commande curl
est terminée, vous obtiendrez la sortie suivante.

4. Exécutez la commande apt-cache
ci-dessous pour vérifier que vous avez ajouté le référentiel GitLab avec succès.

5. Maintenant, relancez la commande apt update
pour mettre à jour la liste des packages disponibles. Cette commande assure que votre système utilisera le référentiel GitLab nouvellement ajouté lors de l’installation de GitLab.
6. Enfin, exécutez la commande apt install
ci-dessous pour installer GitLab (gitlab-ce
) sur votre système.

L’installation prendra un certain temps, mais vous verrez la sortie suivante lorsque l’installation sera terminée. Cette sortie confirme que vous avez maintenant installé GitLab avec succès sur votre système.

Configuration de votre installation GitLab
Vous avez maintenant GitLab installé sur votre système, mais vous devrez effectuer quelques modifications de configuration avant d’utiliser GitLab. Le fichier de configuration de GitLab (/etc/gitlab/gitlab.rb) contient les paramètres globaux de GitLab qui ne sont pas spécifiques à l’environnement de votre serveur GitLab.
Vous allez modifier le fichier de configuration de GitLab pour définir votre nom de domaine FQDN et une connexion sécurisée à votre domaine.
1. Ouvrez le fichier de configuration /etc/gitlab/gitlab.rb dans votre éditeur de texte préféré.
Une des entrées les plus importantes dans le fichier de configuration de GitLab est la directive external url, comme indiqué ci-dessous. Cette directive permet aux utilisateurs d’accéder à GitLab via un navigateur web.
Modifiez la valeur de la directive external url de http://gitlab.example.com à https://gitlab.yourdomain.com, où yourdomain.com est votre nom de domaine FQDN.

2. Ensuite, rendez-vous à la section Intégration de Let’s Encrypt située en bas, et configurez les directives comme suit :
- Décommentez la directive
letsencrypt['enable']
en supprimant le#
précédent et changez la valeur denil
àtrue
. Cette directive indique à GitLab de configurer automatiquement HTTPS sur votre serveur. - Décommentez la directive
letsencrypt['contact_emails']
en supprimant le#
précédent, et mettez votre adresse e-mail en tant que valeur. Let’s Encrypt utilisera cette adresse e-mail pour vous contacter lorsque vous devrez renouveler votre certificat SSL (tous les 90 jours). - Enregistrez les modifications et quittez l’éditeur.

3. Enfin, exécutez la commande ci-dessous pour reconfigurer
et appliquer les modifications dans le fichier de configuration /etc/gitlab/gitlab.rb de GitLab.

Configuration de votre pare-feu pour les connexions SSL
Maintenant que vous avez configuré GitLab, vous devrez configurer les règles de votre pare-feu pour autoriser les connexions SSL et sécurisées vers votre serveur. Uncomplicated Firewall (UFW) est le programme par défaut pour gérer les règles du pare-feu sous Ubuntu.
Si vous placez votre serveur derrière un pare-feu, vous devrez ouvrir le port HTTP 80
et le port HTTPS 443
pour les connexions SSL.
Exécutez la commande suivante pour ouvrir les ports OpenSSH
, HTTP
et HTTPS
pour votre serveur GitLab.

Maintenant, exécutez la commande suivante pour vérifier l’état de votre pare-feu.

Sécurisation de GitLab via l’interface Web
Votre pare-feu est actif, mais est-ce que cela signifie que votre GitLab est sécurisé ? Ajouter des couches de sécurité ne fait jamais de mal. Vous allez donc renforcer davantage votre installation GitLab via l’interface web.
1. Ouvrez votre navigateur web préféré et accédez à votre serveur GitLab. Par exemple, http://gitlab.example.com, où example.com est le nom de domaine FQDN.
Choisissez Chrome ou Firefox pour accéder à votre serveur GitLab pour une meilleure sécurité. Ces navigateurs web utilisent leurs propres protocoles HTTP/HTTPS, qui aident à appliquer les politiques de sécurité.
Ci-dessous, vous pouvez voir la page de connexion de GitLab.

2. Ensuite, cliquez sur l’icône de cadenas (en haut à gauche) à côté de la barre d’adresse, et vous verrez l’état de votre connexion. Cette démo montre que la Connexion est sécurisée, ce qui indique que votre connexion au serveur se fait via HTTPS.

Retournez à votre terminal et exécutez la commande cat
ci-dessous pour obtenir votre mot de passe root initial
.
Par défaut, l’installation de GitLab est livrée avec un mot de passe root initial généré automatiquement.
Copiez et enregistrez votre mot de passe root initial dans un endroit sûr. Vous utiliserez ce mot de passe pour vous connecter à GitLab (étape quatre).

4. Retournez à votre navigateur web, tapez root comme nom d’utilisateur et entrez votre mot de passe root initial comme mot de passe. Cliquez sur Se connecter pour vous connecter à votre serveur GitLab.

Après vous être connecté à votre serveur GitLab, votre navigateur vous redirige vers le tableau de bord de GitLab, comme le montre l’image ci-dessous.

Ajouter une clé SSH à votre compte GitLab
En plus de l’interface web, vous pouvez également accéder à GitLab via un environnement de ligne de commande de manière sécurisée. Comment? Vous devrez d’abord ajouter une clé SSH à votre compte, afin de pouvoir accéder à GitLab en exécutant une commande sur votre terminal sans avoir à entrer de mot de passe.
1. Exécutez la commande ssh-keygen
pour générer une paire de clés SSH adaptée à une utilisation dans les connexions SSH. Lorsqu’on vous le demande, appuyez sur la touche Entrée pour conserver l’emplacement de sauvegarde par défaut de la clé SSH (/root/.ssh/id_rsa) et ne pas ajouter de phrase secrète.

2. Exécutez la commande cat
ci-dessous pour afficher votre clé publique à l’écran, comme indiqué ci-dessous. Copiez la chaîne de clé publique ssh-rsa entière et enregistrez-la dans un endroit sûr. Vous ajouterez cette clé publique à votre compte GitLab ultérieurement (étape trois).

3. Retournez au tableau de bord de GitLab dans votre navigateur pour ajouter votre clé publique comme suit :
- Cliquez sur le menu Clés SSH dans le panneau de gauche de la page Paramètres utilisateur pour accéder à la page Clés SSH.
- Collez la clé publique que vous avez copiée (étape deux) dans le champ Clé, comme indiqué ci-dessous
- Indiquez le nom que vous préférez pour la clé dans le champ Titre. Mais pour cette démonstration, le nom est défini comme ATA–GitHub.
- Cliquez sur Ajouter une clé pour finaliser l’ajout de la clé publique à votre compte.

Désactivation des inscriptions publiques
Pour une sécurité supplémentaire, vous pouvez désactiver les inscriptions publiques sur GitLab. Pourquoi ? La fonction d’inscription publique dans GitLab permet à n’importe qui de créer un compte sur le serveur GitLab. La désactivation de cette fonctionnalité vous permet d’éviter les attaques par force brute sur votre serveur.
1. Depuis le tableau de bord de GitLab, cliquez sur Menu -> Admin pour accéder au panneau d’administration, puis cliquez sur Paramètres pour accéder à la page des paramètres Généraux du panneau d’administration (étape deux).

2. Désactivez l’option Inscription activée dans la section Restrictions d’inscription. Cela désactive la fonction d’inscription publique de GitLab.

3. Faites défiler vers le bas et cliquez sur Enregistrer les modifications (en bas) pour enregistrer les modifications apportées aux paramètres de restrictions d’inscription.

4. Enfin, déconnectez-vous de votre compte et accédez à l’écran de connexion de votre GitLab.
Comme vous pouvez le voir ci-dessous, le lien S’inscrire maintenant a disparu.

Test de votre serveur GitLab
À ce stade, vous avez déjà configuré et sécurisé votre serveur GitLab, et c’est génial ! Mais comment savoir si votre serveur GitLab fonctionne réellement ? Vous allez tester votre serveur en créant un projet GitLab via le tableau de bord GitLab et en clonant le projet sur votre serveur.
1. Sur le tableau de bord de GitLab, cliquez sur l’icône plus (+) à côté de la zone de recherche, puis cliquez sur Nouveau projet, comme indiqué ci-dessous, pour créer un nouveau projet GitLab.

2. Ensuite, indiquez le Nom du projet de votre choix, mais pour cette démonstration, le nom du projet est défini comme ATA GitLab, et le Slug du projet est défini comme (ata–gitlab).
Cliquez sur Créer projet pour créer votre nouveau projet.

3. Retournez à votre terminal et exécutez les commandes suivantes pour configurer votre nom d’utilisateur global (--global user.name
) et votre adresse e-mail (--global user.email
) pour Git. Chaque nom d’utilisateur et adresse e-mail doivent être uniques à l’échelle mondiale sur le serveur GitLab.
4. Maintenant, exécutez la commande git clone
ci-dessous pour cloner le projet ATA GitLab que vous avez créé (étape deux) dans votre répertoire actuel. Remplacez yourdomain.com
par votre FQDN.
Si tout se passe bien, vous verrez une sortie similaire à celle ci-dessous. Lorsque le clonage est terminé, vous aurez un nouveau répertoire appelé ATA-GitLab.

5. Enfin, exécutez la commande ls
pour vérifier que le répertoire ATA-GitLab existe bien.
Puisque vous pouvez cloner le nouveau projet ATA GitLab et que le répertoire ATA GitLab existe, la sortie ci-dessous confirme que votre serveur GitLab fonctionne correctement.

Conclusion
Dans ce tutoriel, vous avez appris comment effectuer une installation sécurisée de GitLab sur votre système Ubuntu Linux. Vous avez veillé à sécuriser votre serveur GitLab via l’interface web, à ajouter des clés SSH à votre compte GitLab et à tester si votre serveur GitLab fonctionne.
Avec ces nouvelles connaissances, peut-être souhaitez-vous apprendre comment configurer des systèmes d’intégration continue (CI) automatisés avec GitLab?