> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/gateway/da/getting-started/devolutions-gateway-configuration-on-linux.md).

# Konfiguration af Devolutions Gateway på Linux

Installér og konfigurer Devolutions Gateway på Ubuntu Linux, herunder TLS-certifikater, firewallporte og forbindelse til Devolutions Server.

Det er hurtigt og nemt at installere og køre Devolutions Gateway på Linux, forudsat at flere forudsætninger er opfyldt. Ubuntu 22.04 LTS blev brugt til at demonstrere installationen og konfigurationen.

{% hint style="warning" %}
Devolutions Server eller Devolutions Cloud er påkrævet til konfigurationen, og der kræves en licens til Devolutions Gateway.
{% endhint %}

### Installér Devolutions Gateway

1. Gå til siden [Devolutions Gateway GitHub Release](https://github.com/Devolutions/devolutions-gateway/releases/), og download **.deb**-filen for den seneste udgivelse.
2. Angiv følgende på kommandolinjen: `wget https://github.com/Devolutions/devolutions-gateway/releases/download/v2024.3.2/devolutions-gateway_2024.3.2.0_amd64.deb`
3. Installér pakken med værktøjet `dpkg`: `sudo dpkg -i devolutions-gateway_2024.3.2.0_amd64.deb`

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Konfigurations- og binærpakkerne findes på følgende placeringer:</p><ul><li><strong>Konfiguration</strong>: <code>/etc/devolutions-gateway</code></li><li><strong>Binær fil</strong>: <code>/usr/bin/devolutions-gateway</code></li></ul></div>

### Opdater Devolutions Gateway

For at opdatere Devolutions Gateway på Linux skal De downloade den seneste pakke som beskrevet i forrige afsnit og køre installationskommandoen. Pakken installeres oven på den eksisterende installation og bevarer konfigurationerne.

### Installér PowerShell-gatewaymodulet

Det anbefales at bruge PowerShell-gatewaymodulet til at konfigurere og administrere instansen af Devolutions Gateway på Linux.

1. Installér PowerShell med denne kommando:

   ```powershell
   source /etc/os-release
   wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb
   sudo dpkg -i packages-microsoft-prod.deb
   rm packages-microsoft-prod.deb
   sudo apt-get update
   sudo apt-get install -y powershell
   ```
2. Installér PowerShell-modulet til Devolutions Gateway:

   ```powershell
   Install-Module -Name DevolutionsGateway
   Import-Module -Name DevolutionsGateway
   ```

Når det er installeret, kan konfigurationen af Devolutions Gateway startes, stoppes, vises eller ændres.

### Konfigurer certifikater

Korrekt tillid til certifikater mellem systemer er afgørende for, at Devolutions Gateway fungerer. Funktioner som WebSockets, der bruges i webdashboardvisninger af RDP, SSH osv., kræver et certifikat, der er tillid til. Et certifikat fra en officiel udsteder som Let's Encrypt er ideelt til de fleste produktionssystemer. Selvsignerede certifikater, som eksemplet nedenfor, kan genereres, men kræver yderligere konfiguration af tillid. De kan generere certifikater på et hvilket som helst system og bruge dem i Devolutions Gateway, hvis de opfylder certifikatkravene.

#### Generer et Let's Encrypt-certifikat på Ubuntu 22.04 LTS via Certbot

En mulighed er at generere et Let's Encrypt-certifikat med værktøjet Certbot. For at installere den seneste version kan De bruge pakkehåndteringen snap. Afhængigt af Ubuntu-distributionen indeholder standard-APT-arkiverne muligvis ikke den seneste version af softwaren. I dette eksempel bruges domænebekræftelse med Cloudflare som DNS-udbyder.

1. Eksemplet nedenfor viser Certbot installeret og kørt som root-brugeren, men Devolutions Gateway som en anden bruger.

   ```shell
   sudo snap install certbot --classic
   sudo snap set certbot trust-plugin-with-root=ok
   sudo snap install certbot-dns-cloudflare
   ```
2. Når De bruger Cloudflare, skal De generere et API-token med bruger- eller kontoomfang ved hjælp af skabelonen **Edit zone DNS**. Når De har API-tokenet, skal De oprette den tilhørende mappe og den tilsvarende `.ini`-fil, der skal indeholde API-tokenet.

   ```shell
   sudo install -d -m 0700 /root/.secrets
   sudo nano /root/.secrets/cloudflare.ini
   sudo chmod 0600 /root/.secrets/cloudflare.ini
   ```
3. Anmod om et certifikat til Deres Devolutions Gateway-domæne ved hjælp af Cloudflare DNS-pluginet. Erstat værdien `gateway.mydomain.com` nedenfor med Deres eget domæne.

   ```shell
   certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d gateway.mydomain.com --cert-name gateway
   ```
4. Rediger konfigurationsfilen `gateway.json` for at tilføje følgende linjer og bruge det netop genererede certifikat ved hjælp af PowerShell-modulet til Devolutions Gateway. Kommandoerne nedenfor ændrer konfigurationsvariablerne `TlsCertificateFile`, `TlsPrivateKeyFile` og `Listeners`.

   ```powershell
   Import-Module DevolutionsGateway
   Set-DGatewayConfig -TlsCertificateFile "/etc/letsencrypt/live/gateway/fullchain.pem" -TlsPrivateKeyFile "/etc/letsencrypt/live/gateway/privkey.pem" -Listeners @(
   @{
           "InternalUrl" = "tcp://*:8181"
           "ExternalUrl" = "tcp://*:8181"
       }
       @{
           "InternalUrl" = "https://*:7171"
           "ExternalUrl" = "https://*:7171"
       }
   )
   ```
5. Før De kan genstarte Devolutions Gateway for at bruge det nye certifikat, skal De give den bruger, der kører Devolutions Gateway, lov til at læse certifikatfilerne. Det forudsætter, at brugeren hedder **devolutions**, og at certifikatet hedder **gateway**. De giver gennemgangsrettigheder til mapperne og læsetilladelser til selve certifikatfilerne.

   ```shell
   sudo setfacl -R -m u:devolutions:x /etc/letsencrypt/live
   sudo setfacl -R -m u:devolutions:x /etc/letsencrypt/live/gateway
   sudo setfacl -R -m u:devolutions:x /etc/letsencrypt/archive
   sudo setfacl -R -m u:devolutions:x /etc/letsencrypt/archive/gateway
   sudo setfacl -m u:devolutions:r /etc/letsencrypt/live/gateway/fullchain.pem
   sudo setfacl -m u:devolutions:r /etc/letsencrypt/live/gateway/privkey.pem
   sudo setfacl -m u:devolutions:r /etc/letsencrypt/archive/gateway/fullchain*.pem
   sudo setfacl -m u:devolutions:r /etc/letsencrypt/archive/gateway/privkey*.pem

   # Reconfigure to add a deploy hook
   sudo certbot reconfigure --cert-name gateway --deploy-hook "sudo setfacl -m u:devolutions:r /etc/letsencrypt/archive/gateway/fullchain*.pem; sudo setfacl -m u:devolutions:r /etc/letsencrypt/archive/gateway/privkey*.pem; systemctl restart devolutions-gateway.service"
   ```
6. Genstart Devolutions Gateway med enten kommandoen `systemctl` eller PowerShell-modulet til Devolutions Gateway.

   ```shell
   # Restart Gateway using systemctl
   systemctl restart devolutions-gateway.service
   ```

   ```powershell
   # Restart Gateway using the Devolutions Gateway PowerShell module, assuming it is run in a pwsh shell.
   Import-Module DevolutionsGateway; Restart-DGateway
   ```

**Forny Let's Encrypt-certifikatet**

Som standard bruges der med Snap-installationsmetoden en systemd-timer (i stedet for et cron-job), som kører to gange om dagen (men kun fornyer et certifikat inden for 30 dage før udløb). For at gennemtvinge en fornyelse kan De bruge kommandoen nedenfor.

```
sudo certbot renew
# To perform a renewal dry run and force a restart of the service, you can use the following command:
# sudo certbot renew --dry-run --run-deploy-hooks
```

#### Generer et selvsigneret certifikat på Ubuntu 22.04 LTS via OpenSSL

Med værktøjet OpenSSL genererer De et certifikat direkte fra kommandolinjen. Certifikatet skal derefter placeres direkte i konfigurationsmappen **/etc/devolutions-gateway**.

```powershell
sudo openssl req -x509 -subj "/C=CA/ST=Quebec/L=Lavaltrie/O=Devolutions/CN=ubuntu-2204" -addext "subjectAltName = IP:10.10.0.20" -addext "extendedKeyUsage = serverAuth" -nodes -days 365 -newkey rsa:2048 -keyout /etc/devolutions-gateway/server.key -out /etc/devolutions-gateway/server.crt
```

Certifikatanmodningen ser forskellig ud for hver konfiguration.

Bemærk, at certifikatet **skal** indeholde en udvidelse **Subject Alternative Name (SAN)** med enten et **DNS-navn** eller en **IP-adresse**, og det bør også indeholde udvidelsen **Extended Key Usage (EKU)** med formålet **Server Authentication** (`serverAuth`). Det er påkrævet, fordi moderne operativsystemer og browsere, herunder **Google Chrome** og **macOS,** afviser certifikater, der mangler en SAN eller den relevante EKU, selvom Common Name (CN) er angivet. Kravet kan lempes ved at sætte indstillingen `TlsVerifyStrict` til `false`, hvis det er nødvendigt, men det anbefales ikke.

<table data-header-hidden><thead><tr><th width="144"></th><th></th></tr></thead><tbody><tr><td><strong>Tilpasningsmuligheder</strong></td><td><strong>Forklaring</strong></td></tr><tr><td><code>req</code></td><td>Opret og behandl certifikatanmodninger, herunder selvsignerede certifikater i formatet PKCS#10.</td></tr><tr><td><code>-x509</code></td><td>Udskriv et selvsigneret certifikat.</td></tr><tr><td><code>-subj</code></td><td><p>Definer certifikatemnet på kommandolinjen. Der må ikke være mellemrum mellem sektionerne</p><ul><li><code>/C</code> - Land i en kode på 2 cifre, f.eks. “CA” for Canada eller “US” for USA.</li><li><code>/ST</code> - Stat eller provins, f.eks. Quebec eller California.</li><li><code>/L</code> - Lokalitet, f.eks. Lavaltrie eller Sacramento.</li><li><code>/O</code> - Organisation, f.eks. Devolutions eller Microsoft.</li><li><code>/CN</code> - Common name, her <code>ubuntu-2204</code> (som vist med kommandoen <code>hostname</code>).</li></ul></td></tr><tr><td><code>-addext</code></td><td><p>For at tilføje et Subject Alternate Name (SAN) kan De bruge denne parameter til at definere enten en IP- eller DNS-post.</p><ul><li><code>"subjectAltName = IP:10.10.0.20"</code></li><li><code>"subjectAltName = DNS:ubuntu-2204"</code></li></ul></td></tr><tr><td><code>-nodes</code></td><td>Kryptér ikke den oprettede private nøgle.</td></tr><tr><td><code>-days</code></td><td>Antallet af dage, certifikatet er gyldigt.</td></tr><tr><td><code>-newkey</code></td><td>Definer algoritmen og bitstørrelsen. Her bruges <code>rsa:2048</code>.</td></tr><tr><td><code>-keyout</code></td><td>Placeringen, hvor filen med den private nøgle oprettes.</td></tr><tr><td><code>-out</code></td><td>Placeringen, hvor filen med den offentlige nøgle oprettes.</td></tr></tbody></table>

#### Hav tillid til det selvsignerede certifikat på Ubuntu

TLS-certifikatet har to formål:

1. Sikrer administrations-API'en;
2. Sikrer enhver tunnel fra klient til Gateway, hvor gatewayen kan inspicere eller filtrere trafik (websteder, Gateway Tunnel, SCP/SFTP osv.).\
   For uigennemsigtige protokoller som RDP eller SSH videresender Devolutions Gateway blot allerede krypterede bytes, men certifikatet er stadig påkrævet til tilstandskontrol af gatewayen og fremtidige funktioner.

Når det selvsignerede certifikat er oprettet, skal certifikatet i Ubuntu-systemet have tillid. For at have tillid på hele systemet skal De bruge følgende sæt kommandoer:

```powershell
cd /etc/devolutions-gateway
sudo apt-get install -y ca-certificates
sudo cp server.crt /usr/local/share/ca-certificates
sudo update-ca-certificates
```

`ca-certificates` er muligvis allerede installeret. Når De kører kommandoen `update-ca-certificates`, oprettes et symlink i `/etc/ssl/certs` til den kopierede certifikatfil i **/usr/local/share/ca-certificates**.

{% hint style="warning" %}
Hvis dette gøres i Firefox, vises der flere tillidsfejl, fordi browseren ikke bruger systemets certifikatlager. Deres [dokumentation](https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox) beskriver nogle løsninger på dette.
{% endhint %}

#### Hav tillid til det selvsignerede certifikat på Windows

Når det selvsignerede certifikat er oprettet, skal der være tillid til det på Devolutions Server. Filerne **server.crt** og **server.key** skal overføres til Windows-systemet, eller De kan kopiere og indsætte indholdet i filer (dvs. **sudo cat server.crt** i Ubuntu og kopiere det til en tekstfil på Windows).

{% hint style="warning" %}
Spring dette afsnit over, hvis Devolutions Server ikke kører på Windows.
{% endhint %}

1\. Kopiér den offentlige nøgle til Windows (i eksemplet er **C:\Gateway** en midlertidig placering):\
`sudo cat server.crt`

2. Kopiér indholdet til en **server.crt**-fil.
3. Kopiér den private nøgle til Windows:\
   `sudo cat server.key`
4. Kopiér indholdet til en **server.key**-fil.
5. Opret en PFX-fil med kommandolinjeværktøjet certutil i Windows. For at det virker, skal nøglefilen have samme navn som **crt**-filen og kun adskille sig i filtypenavnet:\
   `certutil -mergepfx server.crt server.pfx`
6. Importér PFX-filen til [certifikatlageret Trusted Root Certification Authorities](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/trusted-root-certification-authorities-certificate-store).
   1. Dobbeltklik på filen **server.pfx** for at starte importguiden, og vælg ***Lokal computer***.
   2. Klik på ***Næste***, og acceptér prompten.
   3. Klik på ***Næste***.
   4. Angiv den adgangskode, De angav med kommandoen `certutil`.
      * Valgfrit: vælg ***Markér denne nøgle som eksporterbar***.
   5. Vælg indstillingen ***Placer alle certifikater i følgende lager***.
   6. Vælg ***Trusted Root Certification Authorities*** med knappen ***Gennemse...***.
   7. Klik på ***Næste***.
   8. Klik på ***Afslut*** for at fuldføre importen.

### Åbn firewallporte i Ubuntu

Hvis Linux-systemet bruger UFW (Uncomplicated Firewall) til at administrere en iptables-baseret firewall, skal De køre følgende kommandoer for at åbne de nødvendige porte:

```powershell
sudo ufw status
sudo ufw allow 7171
sudo ufw allow 8181
sudo ufw status
```

### Rediger konfigurationen af Devolutions Gateway

Standardkonfigurationen af en gateway i filen **/etc/devolutions-gateway/gateway.json** skal have certifikatdirektiverne tilføjet (`InternalUrl` skal bruge HTTPS):

```powershell
{
  "Id": "YOUR-UNIQUE-GUID",
  "ProvisionerPublicKeyFile": "provisioner.pem",
  "ProvisionerPrivateKeyFile": null,
  "Listeners": [
    {
      "InternalUrl": "tcp://:8181",
      "ExternalUrl": "tcp://:8181"
    },
    {
      "InternalUrl": "http://:7171",
      "ExternalUrl": "https://:7171"
    }
  ]
}
```

Rediger filen ovenfor, så den afspejler følgende, under antagelse af at både **server.crt** og **server.key** ligger i samme mappe som **gateway.json** (det indbyggede filredigeringsprogram Nano anbefales):

```powershell
{
  "Id": "YOUR-UNIQUE-GUID",
  "ProvisionerPublicKeyFile": "provisioner.pem",
  "ProvisionerPrivateKeyFile": null,
  "TlsCertificateFile": "server.crt",
  "TlsPrivateKeyFile": "server.key",
  "Listeners": [
    {
      "InternalUrl": "tcp://:8181",
      "ExternalUrl": "tcp://:8181"
    },
    {
      "InternalUrl": "https://:7171",
      "ExternalUrl": "https://:7171"
    }
  ]
}
```

#### Genstart Devolutions Gateway

Når den nye konfiguration er på plads, skal De genstarte Devolutions Gateway. Det kan gøres med kommandoen `systemctl`:

```powershell
sudo systemctl restart devolutions-gateway.service
sudo systemctl status devolutions-gateway.service
```

Alternativt kan PowerShell-kommandoerne `Stop-DGateway` og `Start-DGateway` også bruges.

### Forbind Devolutions Gateway til Devolutions Server

#### Kopiér den offentlige nøgle fra Devolutions Server til Devolutions Gateway på Linux

1. Log på webkonsollen til Devolutions Server, og gå til ***Administration*****&#x20;–&#x20;*****Devolutions Gateway***.
2. Klik på knappen ***Mere***, og vælg indstillingen ***Download offentlig nøgle***.
3. Kopiér indholdet af den downloadede fil **gateway\_public\_key.pem** på Windows.
4. Erstat indholdet af filen **/etc/devolutions-gateway/provisioner.pem** (værktøjet Nano anbefales) med det kopierede indhold fra Windows.
5. Genstart Devolutions Gateway med kommandoen `sudo systemctl restart devolutions-gateway.service`.

#### Konfigurer Devolutions Gateway i Devolutions Server

Gå til webgrænsefladen til Devolutions Server, hvor den netop konfigurerede Linux-instans af Devolutions Gateway tilføjes.

{% hint style="warning" %}
Spring dette afsnit over, hvis De installerer Devolutions Gateway med Devolutions Cloud.
{% endhint %}

1. Log på webkonsollen til Devolutions Server, og gå til ***Administration*** – ***Devolutions Gateway***.
2. Klik på knappen ***Tilføj*** (***+***).
3. Vælg ***Gateway***.
4. Angiv følgende (det ændres afhængigt af konfigurationen).
   1. ***Navn***: Linux Gateway
   2. ***URL til Devolutions Gateway***: `https://10.10.0.20:7171`
   3. ***TCP-værtsnavn***: `Ubuntu-2204`
5. Klik på ***Gem***.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Klik på indstillingsmenuen <em><strong>Mere</strong></em> for gatewayen, og vælg indstillingen <em><strong>Publicer tilbagekaldelsesliste</strong></em>, hvis tilbagekaldelseslisten er forældet.</p></div>

### Opløs værter i Ubuntu

Det Linux-hostede system med Devolutions Gateway skal kunne opløse de adresser, som Devolutions Server anmoder om. Den enkleste metode til test er at ændre hosts-filen.

Opret forbindelse til følgende system:

* **Værtsnavn**: `it-help-dc`
* **Fuldt kvalificeret domænenavn (FQDN)**: `it-help-dc.ad.it-help.ninja`
* **IP-adresse**: `10.10.0.3`

Åbn hosts-filen til redigering med `sudo nano /etc/hosts` for at tilføje værten i Ubuntu.

### Åbn en webbaseret RDP-session

Gatewayen kan nu oprette forbindelse til værter. Da værten `it-help-dc` blev tilføjet som opløselig i Ubuntu, kan den bruges til at oprette forbindelse i en webbaseret session.

{% hint style="info" %}
Webbaserede sessioner kræver en aktiv gateway, der er konfigureret til posten, og den bruger, der starter, skal have en tildelt licens til Remote Desktop Manager Team edition eller en licens til Devolutions Launcher.

Hvis der er foretaget ændringer i licenstildelinger, kan det desuden være nødvendigt at logge af og på igen for at se muligheden for at starte den webbaserede forbindelse.
{% endhint %}

1. I webgrænsefladen til Devolutions Server skal De klikke på ***Tilføj***. Vælg en sessionspost af typen ***RDP***.
2. Klik på ***Fortsæt***.
3. Angiv et ***Navn*** og en ***Vært***, som skal kunne opløses af Linux-installationen af Devolutions Gateway.
4. Klik på ***Tilføj***.
5. Angiv eller knyt de nødvendige legitimationsoplysninger til RDP-sessionen, og klik på ***Tilføj***.
6. Under fanen ***VPN/Tunnel/Gateway*** skal De vælge Devolutions Gateway som VPN-type.
7. Sæt indstillingen ***Forbind*** til ***Opret altid forbindelse***.
8. Vælg den rigtige gateway.
9. Klik på ***Tilføj***.
10. Klik på ***Åbn i webklient***.

### Åbn en RDP-session i Remote Desktop Manager

Hvis posten allerede er konfigureret i webgrænsefladen til Devolutions Server, kan den startes fra Remote Desktop Manager, når De er forbundet til arbejdsområdet i Devolutions Server.

{% hint style="warning" %}
Spring dette afsnit over, hvis De installerer Devolutions Gateway med Devolutions Cloud.
{% endhint %}

Når De opretter en ny post fra Remote Desktop Manager, ligner processen den i Devolutions Server.

1. I Remote Desktop Manager skal De klikke på ***Ny post***. Vælg en RDP-sessionspost.
2. Klik på ***Vælg***.
3. Angiv et ***Navn*** og en ***Vært***, som skal kunne opløses af Linux-installationen af Devolutions Gateway.
4. Angiv eller knyt de nødvendige legitimationsoplysninger til RDP-sessionen.
5. Sæt indstillingen ***Forbind*** til ***Opret altid forbindelse***.
6. Under fanen ***VPN/Tunnel/Gateway*** skal De vælge Devolutions Gateway som VPN-type.
7. Gå til underfanen ***Indstillinger (Devolutions Gateway)***.
8. Vælg den ønskede Devolutions Gateway.
9. Klik på ***Tilføj***.
10. Klik på knappen ***Åbn session***.

    <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Når De holder markøren over titellinjen, vises et værktøjstip, der viser, at RDP-forbindelsen går via Devolutions Gateway.</p></div>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/gateway/da/getting-started/devolutions-gateway-configuration-on-linux.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
