Gitlab sicher installieren (Ein Tutorial)

Du hast beschlossen, dass du GitLab für dein Projektmanagement verwenden möchtest, bist dir aber nicht sicher, wie du GitLab sicher installieren kannst? Die Installation von GitLab ist nicht nur ein komplexer Prozess, sondern wenn sie nicht korrekt durchgeführt wird, könnten deine Daten gefährdet sein. Aber keine Sorge, du bist hier genau richtig!

In diesem Tutorial lernst du den gesamten Prozess der sicheren Installation von GitLab, damit du SSL-Verschlüsselung einrichten und GitLab für optimale Leistung konfigurieren kannst.

Klingt interessant? Dann leg gleich los!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn du mitmachen möchtest, stelle sicher, dass du Folgendes hast:

  • 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 auf dem Server installiert.
  • Mindestanforderungen – 8 GB RAM, 50-100 Mb/s Bandbreite, 2 GHz Prozessor und 20 GB Speicherplatz.

Installation von GitLab Community Edition

Jetzt, da du einen FQDN hast und dein Server vorbereitet ist, ist es an der Zeit, GitLab zu installieren. Es gibt verschiedene Möglichkeiten, GitLab zu installieren, wie z.B. die Verwendung des Omnibus-Pakets oder das Kompilieren aus dem Quellcode. Dieses Tutorial konzentriert sich jedoch auf die Installation von GitLab unter Verwendung des GitLab-Repositorys von seinem Entwickler.

GitLab kommt in zwei Distributionen:

  • GitLab Community Edition (CE) – für Benutzer, die eine Open-Source-, Community-unterstützte Version von GitLab bevorzugen.
  • GitLab Enterprise Edition (EE) – für Benutzer, die die zusätzlichen Funktionen benötigen, die GitLab Enterprise Edition bietet.

Aber dieses Demo verwendet die Community Edition, um die Anwendung in Ihrer Entwicklerumgebung zu testen.

1. Öffnen Sie Ihr Terminal und führen Sie den untenstehenden Befehl apt update aus, um sicherzustellen, dass Ihr System Zugriff auf alle neuesten Softwareupdates hat.

Der apt update-Befehl aktualisiert die Paketindexdateien, die von apt verwendet werden, um Informationen über verfügbare Pakete abzurufen.

sudo apt update -y
Updating your package index

2. Führen Sie anschließend den untenstehenden Befehl apt install aus, um (curl) herunterzuladen und installieren Sie die folgenden erforderlichen Abhängigkeiten für Ihre GitLab-Installation:

  • openssh-server-Paket – Enthält den OpenSSH-Serverdämon und zugehörige Tools wie das Hostschlüsselverwaltungstool und den Server, um Benutzern den Remote-Anmeldezugriff zu ermöglichen.
  • Das Paket ca-certificates enthält eine Liste von CA-Zertifikaten. Dieses Paket stellt die erforderlichen Dateien bereit, um die HTTPS-Unterstützung auf Ihrem Server zu aktivieren.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

3. Führen Sie den folgenden curl-Befehl aus, um das Installationsskript von GitLab herunterzuladen (curl): https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce. Der Befehl speichert dann das Installationsskript als Shell-Skript (script.deb.sh) und führt es als Superbenutzer (sudo bash) aus.

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

Nach Abschluss des curl-Befehls erhalten Sie die folgende Ausgabe.

Adding the GitLab repository to your system

4. Führen Sie den folgenden apt-cache -Befehl aus, um zu überprüfen, ob Sie das GitLab-Repository erfolgreich hinzugefügt haben.

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

5. Führen Sie nun erneut den Befehl apt update aus, um die Liste der verfügbaren Pakete zu aktualisieren. Dieser Befehl stellt sicher, dass Ihr System das neu hinzugefügte GitLab-Repository verwendet, wenn Sie GitLab installieren.

sudo apt update -y

6. Führen Sie abschließend den folgenden Befehl apt install aus, um GitLab (gitlab-ce) auf Ihrem System zu installieren.

sudo apt install gitlab-ce -y
Installing GitLab

Die Installation dauert eine Weile, aber wenn die Installation abgeschlossen ist, sehen Sie die folgende Ausgabe. Diese Ausgabe bestätigt, dass Sie GitLab erfolgreich auf Ihrem System installiert haben.

Getting the Welcome Page after Installing GitLab

Konfigurieren Ihrer GitLab-Installation

Sie haben jetzt GitLab auf Ihrem System installiert, aber Sie müssen einige Konfigurationsänderungen vornehmen, bevor Sie GitLab verwenden können. Die Konfigurationsdatei von GitLab (/etc/gitlab/gitlab.rb) enthält die globalen Einstellungen für GitLab, die nicht spezifisch für die Umgebung Ihres GitLab-Servers sind.

Sie werden die Konfigurationsdatei von GitLab ändern, um Ihren FQDN-Domainnamen und die sichere Verbindung zu Ihrer Domain festzulegen.

1. Öffnen Sie die Konfigurationsdatei /etc/gitlab/gitlab.rb in Ihrem bevorzugten Texteditor.

Einer der wichtigsten Einträge in der GitLab-Konfigurationsdatei ist die Anweisung external url, wie unten dargestellt. Diese Anweisung ermöglicht es Benutzern, über einen Webbrowser auf GitLab zuzugreifen.

Ändern Sie den Wert der Anweisung external url von http://gitlab.example.com auf https://gitlab.yourdomain.com, wobei yourdomain.com Ihr FQDN-Domainname ist.

Setting FQDN domain name in the external URL directive

2. Navigieren Sie als nächstes zum Abschnitt Let’s Encrypt-Integration am Ende und konfigurieren Sie die Anweisungen wie folgt:

  • Entkommentieren Sie die Anweisung letsencrypt['enable'], indem Sie das vorangehende # entfernen, und ändern Sie den Wert von nil auf true. Diese Anweisung teilt GitLab mit, HTTPS auf Ihrem Server automatisch zu konfigurieren.
  • Entkommentieren Sie die Anweisung letsencrypt['contact_emails'], indem Sie das vorangehende # entfernen, und geben Sie Ihre E-Mail-Adresse als Wert ein. Let’s Encrypt wird diese E-Mail-Adresse verwenden, um Sie zu kontaktieren, wenn Sie Ihr SSL-Zertifikat erneuern müssen (alle 90 Tage).
  • Speichern Sie die Änderungen und beenden Sie den Editor.
Configuring Let’s Encrypt Integration

Zuletzt führen Sie den folgenden Befehl aus, um die Änderungen in der Konfigurationsdatei /etc/gitlab/gitlab.rb zu neu konfigurieren und auf GitLab anzuwenden.

sudo gitlab-ctl reconfigure
Reconfiguring GitLab

Konfigurieren Ihrer Firewall für SSL-Verbindungen

Jetzt, da Sie GitLab konfiguriert haben, müssen Sie Ihre Firewall-Regeln konfigurieren, um SSL- und sichere Verbindungen zu Ihrem Server zuzulassen. Die Uncomplicated Firewall (UFW) ist das Standardprogramm zur Verwaltung von Firewall-Regeln in Ubuntu.

Wenn Sie Ihren Server hinter einer Firewall platzieren, müssen Sie den HTTP-Port 80 und den HTTPS-Port 443 für SSL-Verbindungen öffnen.

Führen Sie den folgenden Befehl aus, um die Ports OpenSSH, HTTP und HTTPS für Ihren GitLab-Server zu öffnen.

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

Jetzt führen Sie den folgenden Befehl aus, um den Status Ihrer Firewall zu überprüfen.

sudo ufw status 
Checking the status of your firewall

Sichern von GitLab über die Web-Benutzeroberfläche

Ihre Firewall ist aktiv, aber bedeutet das, dass Ihr GitLab sicher ist? Zusätzliche Sicherheitsschichten schaden nie. Daher werden Sie Ihre GitLab-Installation über die Web-Benutzeroberfläche weiter absichern.

1. Öffnen Sie Ihren bevorzugten Webbrowser und navigieren Sie zu Ihrem GitLab-Server. Zum Beispiel http://gitlab.example.com, wobei example.com Ihr FQDN-Domainname ist.

Wählen Sie entweder Chrome oder Firefox, um auf Ihren GitLab-Server zuzugreifen, um eine bessere Sicherheit zu gewährleisten. Diese Webbrowser verwenden ihre eigenen HTTP/HTTPS-Protokolle, die dazu beitragen, Sicherheitsrichtlinien durchzusetzen.

Unten sehen Sie die GitLab-Anmeldeseite.

Accessing the GitLab Log in screen

2. Klicken Sie als Nächstes auf das Vorhängeschlosssymbol (oben links) neben der Adressleiste, und Sie sehen Ihren Verbindungsstatus. Diese Demonstration zeigt, dass die Verbindung sicher ist, was darauf hinweist, dass Ihre Verbindung zum Server über HTTPS erfolgt.

Checking your connection status

Kehren Sie zu Ihrer Konsole zurück und führen Sie den folgenden cat-Befehl aus, um Ihr initial_root_password zu erhalten.

Standardmäßig wird die GitLab-Installation mit einem automatisch generierten Anfangs-Root-Passwort geliefert.

 cat /etc/gitlab/initial_root_password

Kopieren Sie Ihr Anfangs-Root-Passwort und speichern Sie es an einem sicheren Ort. Sie werden dieses Passwort verwenden, um sich bei GitLab anzumelden (Schritt vier).

Getting your initial root password

4. Kehren Sie zu Ihrem Webbrowser zurück, geben Sie root als Benutzernamen ein und geben Sie Ihr Anfangs-Root-Passwort als Passwort ein. Klicken Sie auf Anmelden, um sich bei Ihrem GitLab-Server anzumelden.

Logging in to your GitLab server

Nachdem Sie sich bei Ihrem GitLab-Server angemeldet haben, leitet Ihr Browser Sie zur GitLab-Dashboard weiter, wie unten gezeigt.

Viewing GitLab Dashboard

Hinzufügen eines SSH-Schlüssels zu Ihrem GitLab-Konto

Neben der Weboberfläche können Sie GitLab auch über eine Befehlszeilenumgebung auf sichere Weise zugreifen. Wie? Sie müssen zunächst einen SSH-Schlüssel zu Ihrem Konto hinzufügen, damit Sie GitLab durch Ausführen eines Befehls auf Ihrem Terminal ohne Eingabe eines Passworts zugreifen können.

1. Führen Sie den Befehl ssh-keygen aus, um ein SSH-Schlüsselpaar zu generieren, das für SSH-Verbindungen geeignet ist. Wenn Sie dazu aufgefordert werden, drücken Sie die Eingabetaste, um den Standard-Speicherort für den SSH-Schlüssel (/root/.ssh/id_rsa) beizubehalten, und fügen Sie keine Passphrase hinzu.

ssh-keygen
Generating an SSH keypair

2. Führen Sie den Befehl cat unten aus, um Ihren öffentlichen Schlüssel auf dem Bildschirm anzuzeigen, wie unten gezeigt. Kopieren Sie den gesamten ssh-rsa-öffentlichen Schlüsselstring und speichern Sie ihn an einem sicheren Ort. Diesen öffentlichen Schlüssel fügen Sie später zu Ihrem GitLab hinzu (Schritt drei).

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

3. Gehen Sie zurück zum GitLab-Dashboard in Ihrem Browser, um Ihren öffentlichen Schlüssel wie folgt hinzuzufügen:

  • Klicken Sie auf das SSH-Keys-Menü im linken Bereich der Benutzereinstellungen-Seite, um auf die SSH-Keys-Seite zuzugreifen.
  • Fügen Sie den öffentlichen Schlüssel, den Sie kopiert haben (Schritt zwei), in das Schlüssel-Feld ein, wie unten gezeigt.
  • Geben Sie Ihren bevorzugten Namen für den Schlüssel im Titel-Feld an. Aber für diese Demo ist der Name als ATAGitHub.
  • Klicken Sie auf Schlüssel hinzufügen, um das Hinzufügen des öffentlichen Schlüssels zu Ihrem Konto abzuschließen.
Adding SSH Keys

Öffentliche Anmeldungen deaktivieren

Für zusätzliche Sicherheit können Sie öffentliche Anmeldungen auf GitLab deaktivieren. Warum? Die Funktion für öffentliche Anmeldungen in GitLab ermöglicht es jedem, ein Konto auf dem GitLab-Server zu erstellen. Durch Deaktivieren dieser Funktion können Sie Brute-Force-Angriffe auf Ihren Server vermeiden.

1. Vom GitLab-Dashboard aus klicken Sie auf Menü —> Admin, um auf das Admin-Panel zuzugreifen, und klicken Sie dann auf Einstellungen, um die allgemeinen Einstellungen des Admin-Panels aufzurufen (Schritt zwei).

Viewing the GitLab Admin panel

2. Deaktivieren Sie die Option Registrierung aktiviert im Abschnitt Registrierungsbeschränkungen. Dadurch wird die Funktion für öffentliche Registrierungen von GitLab deaktiviert.

Disabling GitLab Public Sign-ups

3. Scrollen Sie nach unten und klicken Sie auf Änderungen speichern (unten), um die von Ihnen vorgenommenen Änderungen an den Registrierungsbeschränkungseinstellungen zu speichern.

Saving your changes

4. Melden Sie sich abschließend von Ihrem Konto ab und navigieren Sie zu Ihrem GitLab-Anmeldebildschirm.

Wie Sie unten sehen können, ist der Link Jetzt registrieren verschwunden.

Verifying if the Register now link is gone

Testen Ihres GitLab-Servers

Zu diesem Zeitpunkt haben Sie Ihren GitLab-Server bereits konfiguriert und abgesichert, und das ist großartig! Aber wie wissen Sie, ob Ihr GitLab-Server tatsächlich funktioniert? Sie werden Ihren Server testen, indem Sie ein GitLab-Projekt über das GitLab-Dashboard erstellen und das Projekt auf Ihren Server klonen.

1. Klicken Sie auf dem GitLab-Dashboard neben dem Suchfeld auf das Pluszeichen (+), und klicken Sie dann auf Neues Projekt, wie unten gezeigt, um ein neues GitLab-Projekt zu erstellen.

Adding New GitLab Project

2. Geben Sie anschließend Ihren bevorzugten Projekt Namen ein, aber für diese Demo ist der Projektname auf ATA GitLab festgelegt, und der Projektslug ist auf (atagitlab) festgelegt.

Klicken Sie auf Projekt erstellen, um Ihr neues Projekt zu erstellen.

Creating a new project

3. Kehren Sie zu Ihrem Terminal zurück und führen Sie die folgenden Befehle aus, um Ihren globalen Benutzernamen (--global user.name) und Ihre E-Mail (--global user.email) für Git festzulegen. Jeder Benutzername und jede E-Mail sind global eindeutig für alle Konten auf dem GitLab-Server.

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

4. Führen Sie nun den git clone-Befehl unten aus, um das ATA GitLab-Projekt, das Sie erstellt haben (Schritt zwei), in Ihr aktuelles Verzeichnis zu klonen. Ersetzen Sie yourdomain.com durch Ihre FQDN.

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

Wenn alles gut geht, sehen Sie eine Ausgabe ähnlich der unten stehenden. Wenn der Klonvorgang abgeschlossen ist, haben Sie ein neues Verzeichnis namens ATA-GitLab.

Cloning the ATA GitLab project

5. Führen Sie abschließend den ls-Befehl aus, um zu überprüfen, ob das Verzeichnis ATA-GitLab existiert.

ls

Da Sie das neue ATA GitLab-Projekt klonen können und das ATA GitLab-Verzeichnis vorhanden ist, bestätigt die unten stehende Ausgabe, dass Ihr GitLab-Server ordnungsgemäß funktioniert.

Listing new directory ATA-GitLab

Fazit

In diesem Tutorial haben Sie gelernt, wie Sie eine sichere GitLab-Installation auf Ihrem Ubuntu Linux-System durchführen. Sie haben dafür gesorgt, dass Ihr GitLab-Server über die Web-Schnittstelle gesichert ist, SSH-Schlüssel zu Ihrem GitLab-Konto hinzugefügt und getestet, ob Ihr GitLab-Server funktioniert.

Mit diesem neu erworbenen Wissen möchten Sie vielleicht lernen, wie Sie automatisierte Continuous Integration (CI)-Systeme mit GitLab einrichten?

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