Comment installer Gitlab en toute sécurité (Un tutoriel)

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.

sudo apt update -y
Updating your package index

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.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

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).

sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Une fois que la commande curl est terminée, vous obtiendrez la sortie suivante.

Adding the GitLab repository to your system

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

apt-cache policy docker-ce
Verifying if GitLab Repository Exists

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.

sudo apt update -y

6. Enfin, exécutez la commande apt install ci-dessous pour installer GitLab (gitlab-ce) sur votre système.

sudo apt install gitlab-ce -y
Installing GitLab

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.

Getting the Welcome Page after Installing GitLab

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.

Setting FQDN domain name in the external URL directive

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 de nil à 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.
Configuring Let’s Encrypt Integration

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.

sudo gitlab-ctl reconfigure
Reconfiguring 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.

sudo ufw allow OpenSSH && sudo ufw allow http && sudo ufw allow http
Adding new firewall rule

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

sudo ufw status 
Checking the status of your firewall

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.

Accessing the GitLab Log in screen

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.

Checking your connection status

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.

 cat /etc/gitlab/initial_root_password

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).

Getting your initial root password

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.

Logging in to your GitLab server

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.

Viewing GitLab Dashboard

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.

ssh-keygen
Generating an SSH keypair

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).

 cat ~/.ssh/id_rsa.pub
Viewing the entire ssh-rsa public key string

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 ATAGitHub.
  • Cliquez sur Ajouter une clé pour finaliser l’ajout de la clé publique à votre compte.
Adding SSH Keys

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).

Viewing the GitLab Admin panel

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

Disabling GitLab Public Sign-ups

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.

Saving your changes

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.

Verifying if the Register now link is gone

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.

Adding New GitLab Project

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 (atagitlab).

Cliquez sur Créer projet pour créer votre nouveau projet.

Creating a new project

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.

git config --global user.name "ATA"
git config --global user.email "[email protected]"

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.

git clone http://gitlab.yourdomain.com/root/ATA-GitLab.git

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.

Cloning the ATA GitLab project

5. Enfin, exécutez la commande ls pour vérifier que le répertoire ATA-GitLab existe bien.

ls

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.

Listing new directory ATA-GitLab

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?

Source:
https://adamtheautomator.com/install-gitlab/