> 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/fr/getting-started/devolutions-gateway-configuration-on-linux.md).

# Configuration de Devolutions Gateway sur Linux

Installez et configurez Devolutions Gateway sur Ubuntu Linux, y compris les certificats TLS, les ports du pare-feu et la connexion à Devolutions Server.

L'installation et l'exécution de Devolutions Gateway sur Linux sont rapides et faciles, à condition que plusieurs prérequis soient remplis. Ubuntu 22.04 LTS a été utilisé pour illustrer l'installation et la configuration.

{% hint style="warning" %}
Devolutions Server ou Devolutions Cloud est requis pour la configuration, ainsi qu'une licence Devolutions Gateway.
{% endhint %}

### Installer Devolutions Gateway

1. Rendez-vous sur la page [Devolutions Gateway GitHub Release](https://github.com/Devolutions/devolutions-gateway/releases/) et téléchargez le fichier **.deb** de la plus récente version.
2. Saisissez ce qui suit dans la ligne de commande : `wget https://github.com/Devolutions/devolutions-gateway/releases/download/v2024.3.2/devolutions-gateway_2024.3.2.0_amd64.deb`
3. Installez le paquet à l'aide de l'utilitaire `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>La configuration et les paquets binaires se trouvent aux emplacements suivants :</p><ul><li><strong>Configuration</strong> : <code>/etc/devolutions-gateway</code></li><li><strong>Binaire</strong> : <code>/usr/bin/devolutions-gateway</code></li></ul></div>

### Mettre à jour Devolutions Gateway

Pour mettre à jour Devolutions Gateway sur Linux, téléchargez le plus récent paquet comme expliqué dans la section précédente et exécutez la commande d'installation. Le paquet s'installera par-dessus l'installation existante et préservera les configurations.

### Installer le module PowerShell gateway

Il est recommandé d'utiliser le module PowerShell gateway pour configurer et gérer l'instance Devolutions Gateway sur Linux.

1. Installez PowerShell avec cette commande :

   ```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. Installez le module PowerShell Devolutions Gateway :

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

Une fois l'installation terminée, la configuration de Devolutions Gateway peut être démarrée, arrêtée, consultée ou modifiée.

### Configurer les certificats

Une bonne relation de confiance des certificats entre les systèmes est essentielle au bon fonctionnement de Devolutions Gateway. Des fonctionnalités telles que les WebSockets utilisées dans les vues du tableau de bord web de RDP, SSH, etc., nécessitent un certificat dûment approuvé. Un certificat provenant d'une autorité officielle telle que Let's Encrypt serait idéal pour la plupart des systèmes de production. Des certificats autosignés, comme dans l'exemple ci-dessous, peuvent être générés, mais nécessitent une configuration supplémentaire pour la confiance. Vous pouvez générer des certificats sur n'importe quel système et les utiliser dans Devolutions Gateway s'ils respectent les exigences relatives aux certificats.

#### Générer un certificat LetsEncrypt sur Ubuntu 22.04 LTS avec Certbot

Une option consiste à générer un certificat LetsEncrypt avec l'utilitaire Certbot. Pour installer la plus récente version, vous pouvez utiliser le gestionnaire de paquets snap. Selon la distribution Ubuntu, les dépôts APT par défaut peuvent ne pas contenir la plus récente version du logiciel. Dans cet exemple, la vérification de domaine est utilisée avec Cloudflare comme fournisseur DNS.

1. L'exemple ci-dessous montre Certbot installé et exécuté en tant qu'utilisateur racine, mais Devolutions Gateway exécuté sous un utilisateur différent.

   ```shell
   sudo snap install certbot --classic
   sudo snap set certbot trust-plugin-with-root=ok
   sudo snap install certbot-dns-cloudflare
   ```
2. Lorsque vous utilisez Cloudflare, générez un jeton d'API à portée d'utilisateur ou de compte, à l'aide du modèle **Edit zone DNS**. Une fois le jeton d'API obtenu, créez le dossier conteneur et le fichier `.ini` correspondant pour contenir le jeton d'API.

   ```shell
   sudo install -d -m 0700 /root/.secrets
   sudo nano /root/.secrets/cloudflare.ini
   sudo chmod 0600 /root/.secrets/cloudflare.ini
   ```
3. Demandez un certificat pour votre domaine Devolutions Gateway à l'aide du module d'extension Cloudflare DNS. Remplacez la valeur `gateway.mydomain.com` ci-dessous par votre propre domaine.

   ```shell
   certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d gateway.mydomain.com --cert-name gateway
   ```
4. Modifiez votre fichier de configuration `gateway.json` pour ajouter les lignes suivantes et utiliser le certificat nouvellement généré, à l'aide du module PowerShell Devolutions Gateway. Les commandes ci-dessous modifient les variables de configuration `TlsCertificateFile`, `TlsPrivateKeyFile` et `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. Avant de pouvoir redémarrer Devolutions Gateway pour utiliser le nouveau certificat, vous devez autoriser l'utilisateur qui exécute Devolutions Gateway à lire les fichiers de certificat. On suppose ici que votre utilisateur s'appelle **devolutions** et que le certificat s'appelle **gateway**. Vous accordez des droits de traversée aux répertoires et des droits de lecture aux fichiers de certificat eux-mêmes.

   ```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. Redémarrez Devolutions Gateway à l'aide de la commande `systemctl` ou du module PowerShell 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
   ```

**Renouveler le certificat LetsEncrypt**

Par défaut, avec la méthode d'installation Snap, un minuteur systemd est utilisé (au lieu d'une tâche cron), qui s'exécute deux fois par jour (bien qu'il ne renouvelle un certificat que dans les 30 jours précédant son expiration). Pour forcer un renouvellement, vous pouvez utiliser la commande ci-dessous.

```
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
```

#### Générer un certificat autosigné sur Ubuntu 22.04 LTS avec OpenSSL

À l'aide de l'utilitaire OpenSSL, générez un certificat directement à partir de la ligne de commande. Le certificat doit ensuite être placé directement dans le répertoire de configuration **/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
```

La demande de certificat sera différente pour chaque configuration.

Notez que le certificat **doit** inclure une extension **Subject Alternative Name (SAN)** avec soit un **nom DNS**, soit une **adresse IP**, et il devrait également contenir l'extension **Extended Key Usage (EKU)** avec l'objectif **Server Authentication** (`serverAuth`). Ceci est requis parce que les systèmes d'exploitation et navigateurs modernes, y compris **Google Chrome** et **macOS,** rejetteront les certificats auxquels il manque un SAN ou l'EKU approprié, même si le nom commun (CN) est défini. Il est possible d'assouplir cette exigence en définissant l'option `TlsVerifyStrict` à `false` si nécessaire, mais cela n'est pas recommandé.

<table data-header-hidden><thead><tr><th width="144"></th><th></th></tr></thead><tbody><tr><td><strong>Options de personnalisation</strong></td><td><strong>Explication</strong></td></tr><tr><td><code>req</code></td><td>Créer et traiter des demandes de certificat, y compris des certificats autosignés au format PKCS#10.</td></tr><tr><td><code>-x509</code></td><td>Produire un certificat autosigné.</td></tr><tr><td><code>-subj</code></td><td><p>Définir le sujet du certificat dans la ligne de commande. Il ne doit y avoir aucun espace entre les sections</p><ul><li><code>/C</code> - Pays en code à 2 chiffres, comme « CA » pour le Canada ou « US » pour les États-Unis.</li><li><code>/ST</code> - État ou province, comme Québec ou Californie.</li><li><code>/L</code> - Localité, comme Lavaltrie ou Sacramento.</li><li><code>/O</code> - Organisation, comme Devolutions ou Microsoft.</li><li><code>/CN</code> - Nom commun, ici <code>ubuntu-2204</code> (tel qu'affiché par la commande <code>hostname</code>).</li></ul></td></tr><tr><td><code>-addext</code></td><td><p>Pour ajouter un Subject Alternate Name (SAN), vous pouvez utiliser ce paramètre pour définir une entrée IP ou DNS.</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>Ne pas chiffrer la clé privée créée.</td></tr><tr><td><code>-days</code></td><td>Le nombre de jours de validité du certificat.</td></tr><tr><td><code>-newkey</code></td><td>Définir l'algorithme et la taille en bits, ici <code>rsa:2048</code> est utilisé.</td></tr><tr><td><code>-keyout</code></td><td>L'emplacement où créer le fichier de clé privée.</td></tr><tr><td><code>-out</code></td><td>L'emplacement où créer le fichier de clé publique.</td></tr></tbody></table>

#### Approuver le certificat autosigné sur Ubuntu

Le certificat TLS a deux objectifs :

1. Sécuriser l'API de gestion;
2. Sécuriser tout tunnel client-à-Gateway dans lequel gateway peut inspecter ou filtrer le trafic (sites web, Gateway Tunnel, SCP/SFTP, etc.).\
   Pour les protocoles opaques tels que RDP ou SSH, Devolutions Gateway transmet simplement des octets déjà chiffrés, mais le certificat est tout de même requis pour les vérifications d'état de gateway et les fonctionnalités futures.

Une fois le certificat autosigné créé, le certificat devra être approuvé dans le système Ubuntu. Pour l'approuver à l'échelle du système, utilisez l'ensemble de commandes suivant :

```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
```

Le paquet `ca-certificates` peut déjà être installé. En exécutant la commande `update-ca-certificates`, un lien symbolique sera créé dans `/etc/ssl/certs` vers le fichier de certificat copié dans **/usr/local/share/ca-certificates**.

{% hint style="warning" %}
Si cela est fait dans Firefox, plusieurs erreurs de confiance apparaîtront, car le navigateur n'utilise pas le magasin de certificats du système. Leur [documentation](https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox) propose quelques solutions à ce sujet.
{% endhint %}

#### Approuver le certificat autosigné sur Windows

Après la création du certificat autosigné, il devra être approuvé sur Devolutions Server. Les fichiers **server.crt** et **server.key** devront être transférés vers le système Windows; ou copiez et collez leur contenu dans des fichiers (c.-à-d. **sudo cat server.crt** dans Ubuntu et copiez cela dans un fichier texte sous Windows).

{% hint style="warning" %}
Ignorez cette section si Devolutions Server n'est pas exécuté sous Windows.
{% endhint %}

1\. Copiez la clé publique vers Windows (dans l'exemple, **C:\Gateway** est un emplacement temporaire) :\
`sudo cat server.crt`

2. Copiez le contenu dans un fichier **server.crt**.
3. Copiez la clé privée vers Windows :\
   `sudo cat server.key`
4. Copiez le contenu dans un fichier **server.key**.
5. Créez un fichier PFX à l'aide de l'outil de ligne de commande certutil de Windows. Pour que cela fonctionne, le fichier de clé doit porter le même nom que le fichier **crt**, ne différant que par l'extension :\
   `certutil -mergepfx server.crt server.pfx`
6. Importez le fichier PFX dans le [magasin de certificats des autorités de certification racines de confiance](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/trusted-root-certification-authorities-certificate-store).
   1. Double-cliquez sur le fichier **server.pfx** pour démarrer l'assistant d'importation et choisissez ***Ordinateur local***.
   2. Cliquez sur ***Suivant*** et acceptez l'invite.
   3. Cliquez sur ***Suivant***.
   4. Saisissez le mot de passe que vous avez entré avec la commande `certutil`.
      * Facultatif : choisissez ***Marquer cette clé comme exportable***.
   5. Choisissez l'option ***Placer tous les certificats dans le magasin suivant***.
   6. Sélectionnez ***Autorités de certification racines de confiance*** avec le bouton ***Parcourir...***.
   7. Cliquez sur ***Suivant***.
   8. Cliquez sur ***Terminer*** pour compléter l'importation.

### Ouvrir les ports du pare-feu Ubuntu

Si le système Linux utilise UFW (Uncomplicated Firewall) pour gérer le pare-feu basé sur iptable, exécutez les commandes suivantes pour ouvrir les ports nécessaires :

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

### Modifier la configuration de Devolutions Gateway

La configuration par défaut d'un gateway contenue dans le fichier **/etc/devolutions-gateway/gateway.json** nécessite l'ajout des directives de certificat (le `InternalUrl` devra utiliser HTTPS) :

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

Modifiez le fichier ci-dessus pour refléter ce qui suit, en supposant que **server.crt** et **server.key** se trouvent dans le même répertoire que **gateway.json** (l'utilisation de l'éditeur de fichiers intégré Nano est recommandée) :

```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"
    }
  ]
}
```

#### Redémarrer Devolutions Gateway

Une fois la nouvelle configuration en place, redémarrez Devolutions Gateway. Cela peut être fait avec la commande `systemctl` :

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

Les commandes PowerShell `Stop-DGateway` et `Start-DGateway` peuvent également être utilisées.

### Connecter Devolutions Gateway à Devolutions Server

#### Copier la clé publique de Devolutions Server vers Devolutions Gateway Linux

1. Connectez-vous à la console web de Devolutions Server et allez à ***Administration*****&#x20;–&#x20;*****Devolutions Gateway***.
2. Cliquez sur le bouton ***Plus*** et choisissez l'option ***Télécharger la clé publique***.
3. Copiez le contenu du fichier **gateway\_public\_key.pem** téléchargé sous Windows.
4. Remplacez le contenu du fichier **/etc/devolutions-gateway/provisioner.pem** (l'utilitaire Nano est recommandé) par le contenu copié depuis Windows.
5. Redémarrez Devolutions Gateway avec la commande `sudo systemctl restart devolutions-gateway.service`.

#### Configurer Devolutions Gateway dans Devolutions Server

Allez à l'interface web de Devolutions Server où le Devolutions Gateway Linux nouvellement configuré sera ajouté.

{% hint style="warning" %}
Ignorez cette section si vous installez Devolutions Gateway avec Devolutions Cloud.
{% endhint %}

1. Connectez-vous à la console web de Devolutions Server et allez à ***Administration*** – ***Devolutions Gateway***.
2. Cliquez sur le bouton ***Ajouter*** (***+***).
3. Sélectionnez ***Gateway***.
4. Saisissez ce qui suit (cela variera selon la configuration).
   1. ***Nom*** : Linux Gateway
   2. ***URL Devolutions Gateway*** : `https://10.10.0.20:7171`
   3. ***Nom d'hôte TCP*** : `Ubuntu-2204`
5. Cliquez sur ***Enregistrer***.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Cliquez sur le menu d'options <em><strong>Plus</strong></em> du gateway et choisissez l'option <em><strong>Publier la liste de révocation</strong></em> si la liste de révocation n'est pas à jour.</p></div>

### Résoudre les hôtes dans Ubuntu

Le système Devolutions Gateway hébergé sous Linux doit être en mesure de résoudre les adresses demandées par Devolutions Server. La méthode la plus simple pour tester est de modifier le fichier hosts.

Connectez-vous au système suivant :

* **Nom d'hôte** : `it-help-dc`
* **Nom de domaine complet (FQDN)** : `it-help-dc.ad.it-help.ninja`
* **Adresse IP** : `10.10.0.3`

Ouvrez le fichier hosts pour le modifier avec `sudo nano /etc/hosts` afin d'ajouter l'hôte dans Ubuntu.

### Ouvrir une session RDP basée sur le web

La gateway peut maintenant se connecter à des hôtes. Puisque l'hôte `it-help-dc` a été ajouté comme résoluble par Ubuntu, il peut être utilisé pour se connecter dans une session web.

{% hint style="info" %}
Les sessions web nécessitent une gateway active configurée pour l'entrée, et l'utilisateur qui lance la session devra avoir une licence Remote Desktop Manager édition Team ou une licence Devolutions Launcher qui lui est assignée.

De plus, si des modifications ont été apportées aux assignations de licences, il pourrait être nécessaire de se déconnecter et de se reconnecter pour voir l'option de lancer la connexion web.
{% endhint %}

1. Dans l'interface web de Devolutions Server, cliquez sur ***Ajouter***. Sélectionnez une entrée de session ***RDP***.
2. Cliquez sur ***Continuer***.
3. Entrez un ***Nom*** et un ***Hôte*** qui doit être résoluble par l'installation Linux de Devolutions Gateway.
4. Cliquez sur ***Ajouter***.
5. Entrez ou liez tous les identifiants nécessaires à la session RDP et cliquez sur ***Ajouter***.
6. Sous l'onglet ***VPN/Tunnel/Gateway***, choisissez Devolutions Gateway comme type de VPN.
7. Réglez l'option ***Connecter*** à ***Toujours connecter***.
8. Choisissez la bonne gateway.
9. Cliquez sur ***Ajouter***.
10. Cliquez sur ***Ouvrir dans le client web***.

### Ouvrir une session RDP Remote Desktop Manager

Si l'entrée est déjà configurée depuis l'interface web de Devolutions Server, elle peut être lancée depuis Remote Desktop Manager lorsque connecté à l'espace de travail Devolutions Server.

{% hint style="warning" %}
Sautez cette section si vous installez Devolutions Gateway avec Devolutions Cloud.
{% endhint %}

Lors de la création d'une nouvelle entrée depuis Remote Desktop Manager, le processus est semblable à celui de Devolutions Server.

1. Dans Remote Desktop Manager, cliquez sur ***Nouvelle entrée***. Sélectionnez une entrée de session RDP.
2. Cliquez sur ***Sélectionner***.
3. Entrez un ***Nom*** et un ***Hôte*** qui doit être résoluble par l'installation Linux de Devolutions Gateway.
4. Entrez ou liez tous les identifiants nécessaires à la session RDP.
5. Réglez l'option ***Connecter*** à ***Toujours connecter***.
6. Sous l'onglet ***VPN/Tunnel/Gateway***, choisissez Devolutions Gateway comme type de VPN.
7. Allez au sous-onglet ***Paramètres (Devolutions Gateway)***.
8. Choisissez la Devolutions Gateway souhaitée.
9. Cliquez sur ***Ajouter***.
10. Cliquez sur le bouton ***Ouvrir la session***.

    <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>En survolant la barre de titre, une infobulle apparaîtra et indiquera que la session RDP est connectée 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/fr/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.
