Hoe Gitlab Veilig te Installeren (Een Tutorial)

Je hebt besloten om GitLab te gaan gebruiken voor je projectmanagement, maar weet niet zeker hoe je GitLab veilig moet installeren? Niet alleen is het installeren van GitLab een complex proces, maar als het niet correct wordt uitgevoerd, kan je data in gevaar zijn. Maar geen zorgen, je bent op de juiste plek terechtgekomen!

In deze tutorial leer je het volledige proces van het veilig installeren van GitLab, zodat je SSL-versleuteling kunt instellen en GitLab kunt configureren voor optimale prestaties.

Klinkt interessant? Duik er meteen in!

Vereisten

Deze tutorial zal een hands-on demonstratie zijn. Als je wilt meedoen, zorg er dan voor dat je het volgende hebt:

  • 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 geïnstalleerd op de server.
  • Minimale vereisten – 8 GB RAM, 50-100 Mb/s bandbreedte, 2 GHz processor en 20 GB schijfruimte.

GitLab Community Edition installeren

Nu je een FQDN hebt en je server is voorbereid, is het tijd om GitLab te installeren. Er zijn verschillende manieren om GitLab te installeren, zoals het gebruik van het Omnibus-pakket of compileren vanuit de bron. Maar deze tutorial richt zich op het installeren van GitLab met behulp van het GitLab-repository van de ontwikkelaar.

GitLab komt in twee distributies:

  • GitLab Community Edition (CE) – voor gebruikers die de voorkeur geven aan een open-source, community-ondersteunde versie van GitLab.
  • GitLab Enterprise Edition (EE) – voor gebruikers die de extra functies nodig hebben die GitLab Enterprise Edition biedt.

Maar deze demo gebruikt de Community Edition om de applicatie te testen in je ontwikkelomgeving.

1. Open je terminal en voer het apt update commando hieronder uit om ervoor te zorgen dat je systeem toegang heeft tot alle nieuwste software-updates.

Het apt update commando update de pakketindexbestanden die door de apt utility worden gebruikt om informatie over beschikbare pakketten op te halen.

sudo apt update -y
Updating your package index

2. Voer vervolgens het apt install commando hieronder uit om (curl) te downloaden en de volgende vereiste afhankelijkheden voor je GitLab-installatie te installeren:

  • openssh-server pakket – Bevat de OpenSSH server daemon en gerelateerde tools, zoals het host-key management tool en server, om gebruikers toegang te geven tot remote login.
  • Het ca-certificates pakket bevat een lijst met CA-certificaten. Dit pakket biedt de nodige bestanden om HTTPS-ondersteuning op uw server mogelijk te maken.
sudo apt install curl openssh-server ca-certificates -y
Installing the required dependencies

3. Voer de onderstaande curl opdracht uit om het installatiescript van GitLab (https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce) te downloaden. De opdracht slaat vervolgens het installatiescript op als een shellscript (script.deb.sh) en voert het uit als een supergebruiker (sudo bash).

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

Zodra de curl opdracht is voltooid, krijgt u de volgende uitvoer.

Adding the GitLab repository to your system

4. Voer de onderstaande apt-cache opdracht uit om te controleren of u de GitLab repository succesvol heeft toegevoegd.

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

5. Voer nu opnieuw de apt update opdracht uit om de lijst met beschikbare pakketten bij te werken. Deze opdracht zorgt ervoor dat uw systeem de nieuw toegevoegde GitLab repository gebruikt wanneer u GitLab installeert.

sudo apt update -y

6. Voer tot slot de onderstaande apt install opdracht uit om GitLab (gitlab-ce) op uw systeem te installeren.

sudo apt install gitlab-ce -y
Installing GitLab

De installatie duurt even, maar u ziet de volgende uitvoer wanneer de installatie is voltooid. Deze uitvoer bevestigt dat u GitLab succesvol op uw systeem heeft geïnstalleerd.

Getting the Welcome Page after Installing GitLab

Configureren van uw GitLab-installatie

Je hebt nu GitLab geïnstalleerd op je systeem, maar je moet een paar configuratiewijzigingen aanbrengen voordat je GitLab kunt gebruiken. Het configuratiebestand van GitLab (/etc/gitlab/gitlab.rb) bevat de algemene instellingen voor GitLab die niet specifiek zijn voor de omgeving van je GitLab-server.

Je zult het configuratiebestand van GitLab aanpassen om je FQDN-domeinnaam in te stellen en een beveiligde verbinding met je domein tot stand te brengen.

1. Open het configuratiebestand /etc/gitlab/gitlab.rb in je favoriete teksteditor.

Een van de belangrijkste items in het GitLab-configuratiebestand is de externe url-richtlijn, zoals hieronder weergegeven. Deze richtlijn stelt gebruikers in staat GitLab te openen via een webbrowser.

Verander de waarde van de externe url-richtlijn van http://gitlab.example.com naar https://gitlab.jouwdomein.com, waar jouwdomein.com je FQDN-domeinnaam is.

Setting FQDN domain name in the external URL directive

2. Ga vervolgens naar de sectie Let’s Encrypt-integratie onderaan en configureer de richtlijnen als volgt:

  • Haal het commentaar weg bij de letsencrypt['enable']-richtlijn door het voorafgaande # te verwijderen en verander de waarde van nil naar true. Deze richtlijn vertelt GitLab om automatisch HTTPS op je server te configureren.
  • Haal het commentaar weg bij de letsencrypt['contact_emails']-richtlijn door het voorafgaande # te verwijderen en voer je e-mailadres in als waarde. Let’s Encrypt zal dit e-mailadres gebruiken om contact met je op te nemen wanneer je je SSL-certificaat moet vernieuwen (elke 90 dagen).
  • Sla de wijzigingen op en verlaat de editor.
Configuring Let’s Encrypt Integration

3. Voer tot slot de onderstaande opdracht uit om te herconfigureren en de wijzigingen in het configuratiebestand van GitLab /etc/gitlab/gitlab.rb toe te passen.

sudo gitlab-ctl reconfigure
Reconfiguring GitLab

Configureren van uw firewall voor SSL-verbindingen

Nu u GitLab hebt geconfigureerd, moet u uw firewallregels configureren om SSL- en beveiligde verbindingen naar uw server toe te staan. Uncomplicated Firewall (UFW) is het standaardprogramma om firewallregels te beheren in Ubuntu.

Als u uw server achter een firewall plaatst, moet u poort 80 voor HTTP en poort 443 voor HTTPS openen voor SSL-verbindingen.

Voer de volgende opdracht uit om poorten OpenSSH, HTTP en HTTPS te openen voor uw GitLab-server.

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

Voer nu de volgende opdracht uit om de status van uw firewall te controleren.

sudo ufw status 
Checking the status of your firewall

Beveiligen van GitLab via de webinterface

Uw firewall is actief, maar betekent dit dat uw GitLab veilig is? Extra beveiligingslagen zijn nooit te veel. Dus u zult uw GitLab-installatie verder beveiligen via de webinterface.

1. Open uw favoriete webbrowser en ga naar uw GitLab-server. Bijvoorbeeld, http://gitlab.example.com, waarbij example.com uw FQDN-domeinnaam is.

Kies bij het openen van je GitLab-server voor Chrome of Firefox voor betere beveiliging. Deze webbrowsers gebruiken hun eigen HTTP/HTTPS-protocollen, waarmee beveiligingsbeleid wordt afgedwongen.

Onderaan zie je de inlogpagina van GitLab.

Accessing the GitLab Log in screen

2. Klik vervolgens op het hangslotpictogram (linksboven) naast de adresbalk, en je ziet de status van je verbinding. Deze demo toont De verbinding is beveiligd, wat aangeeft dat je verbinding met de server via HTTPS verloopt.

Checking your connection status

Ga terug naar je terminal en voer de cat-opdracht hieronder uit om je initial_root_password te verkrijgen.

Standaard wordt bij de installatie van GitLab een automatisch gegenereerd initiële rootwachtwoord meegeleverd.

 cat /etc/gitlab/initial_root_password

Kopieer en bewaar je initiële rootwachtwoord op een veilige plek. Je zult dit wachtwoord gebruiken om in te loggen op GitLab (stap vier).

Getting your initial root password

4. Ga terug naar je webbrowser, typ root als gebruikersnaam in en voer je initiële rootwachtwoord als wachtwoord in. Klik op Aanmelden om in te loggen op je GitLab-server.

Logging in to your GitLab server

Na het inloggen op je GitLab-server wordt je browser doorgestuurd naar het GitLab-dashboard, zoals hieronder weergegeven.

Viewing GitLab Dashboard

Een SSH-sleutel toevoegen aan je GitLab-account

Naast de webinterface kun je ook op een veilige manier toegang krijgen tot GitLab via een opdrachtregelomgeving. Hoe? Je moet eerst een SSH-sleutel aan je account toevoegen, zodat je GitLab kunt benaderen door een opdracht in je terminal uit te voeren zonder een wachtwoord in te voeren.

1. Voer het ssh-keygen-commando uit om een SSH-sleutelpaar te genereren dat geschikt is voor gebruik in SSH-verbindingen. Druk op Enter wanneer daarom wordt gevraagd om de standaard opslaglocatie voor de SSH-sleutel te behouden (/root/.ssh/id_rsa) en voeg geen wachtwoord toe.

ssh-keygen
Generating an SSH keypair

2. Voer het cat-commando hieronder uit om uw openbare sleutel op het scherm af te drukken, zoals hieronder weergegeven. Kopieer de volledige ssh-rsa openbare sleutelreeks en sla deze ergens veilig op. U voegt deze openbare sleutel later toe aan uw GitLab (stap drie).

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

3. Keer terug naar het GitLab-dashboard in uw browser om uw openbare sleutel toe te voegen met het volgende:

  • Klik op het SSH Keys-menu aan de linkerkant van de User Settings-pagina om toegang te krijgen tot de SSH Keys-pagina.
  • Plak de openbare sleutel die u hebt gekopieerd (stap twee) in het Key-veld, zoals hieronder weergegeven
  • Geef uw voorkeursnaam voor de sleutel op in het Title-veld. Maar voor deze demo is de naam ingesteld als ATAGitHub.
  • Klik op Add Key om de openbare sleutel toe te voegen aan uw account.
Adding SSH Keys

Openbare aanmeldingen uitschakelen

Voor extra beveiliging kunt u openbare aanmeldingen op GitLab uitschakelen. Waarom? De functie voor openbare aanmeldingen op GitLab stelt iedereen in staat een account aan te maken op de GitLab-server. Door deze functie uit te schakelen, voorkomt u brute-force-aanvallen op uw server.

1. Vanaf het GitLab-dashboard, klik op Menu —> Beheerder om toegang te krijgen tot het beheerderspaneel, klik vervolgens op Instellingen om toegang te krijgen tot het algemene instellingenpagina van het beheerderspaneel (stap twee).

Viewing the GitLab Admin panel

2. Schakel de optie Aanmelding inschakelen uit onder de sectie Aanmeldingsbeperkingen. Hiermee wordt de openbare aanmeldingsfunctie van GitLab uitgeschakeld.

Disabling GitLab Public Sign-ups

3. Scroll naar beneden en klik op Wijzigingen opslaan (onderaan) om de wijzigingen die je hebt aangebracht in de aanmeldingsbeperkingen op te slaan.

Saving your changes

4. Log ten slotte uit bij je account en ga naar het inlogscherm van GitLab.

Zoals je hieronder ziet, is de link Nu registreren verdwenen.

Verifying if the Register now link is gone

Testen van je GitLab-server

Op dit punt heb je je GitLab-server al geconfigureerd en beveiligd, en dat is geweldig! Maar hoe weet je of je GitLab-server daadwerkelijk werkt? Je test je server door een GitLab-project te maken via het GitLab-dashboard en het project naar je server te klonen.

1. Op het GitLab-dashboard, klik op het plus-teken (+) naast het zoekvak, klik vervolgens op Nieuw project, zoals hieronder weergegeven, om een nieuw GitLab-project te maken.

Adding New GitLab Project

2. Geef vervolgens je voorkeursproject naam, maar voor deze demo is de projectnaam ingesteld als ATA GitLab, en de Projectslug is ingesteld op (atagitlab).

Klik op Aanmaken project om je nieuwe project te maken.

Creating a new project

3. Keer terug naar je terminal en voer de volgende commando’s uit om je wereldwijde gebruikersnaam (--global user.name) en e-mail (--global user.email) voor Git in te stellen. Elke gebruikersnaam en e-mail zijn wereldwijd uniek voor alle accounts op de GitLab-server.

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

4. Voer nu het git clone-commando hieronder uit om het ATA GitLab-project dat je hebt aangemaakt (stap twee) naar je huidige directory te klonen. Vervang yourdomain.com door je FQDN.

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

Als alles goed gaat, zie je een uitvoer vergelijkbaar met die hieronder. Wanneer het klonen is voltooid, heb je een nieuwe directory genaamd ATA-GitLab.

Cloning the ATA GitLab project

5. Voer tot slot het ls-commando uit om te controleren of de ATA-GitLab-directory bestaat.

ls

Omdat je het nieuwe ATA GitLab-project kunt klonen en de ATA GitLab-directory bestaat, bevestigt de onderstaande uitvoer dat je GitLab-server correct werkt.

Listing new directory ATA-GitLab

Conclusie

In deze tutorial heb je geleerd hoe je een beveiligde installatie van GitLab uitvoert op je Ubuntu Linux-systeem. Je hebt ervoor gezorgd dat je GitLab-server is beveiligd via de webinterface, SSH-sleutels aan je GitLab-account hebt toegevoegd en hebt getest of je GitLab-server werkt.

Met deze nieuwe kennis wil je misschien leren hoe je geautomatiseerde Continuous Integration (CI)-systemen opzet met GitLab?

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