Devolutions Gateway configuration sur Linux

Installer et exécuter Devolutions Gateway sur Linux est rapide et facile, à condition de respecter plusieurs prérequis. Ubuntu 22.04 LTS a été utilisé pour démontrer l'installation et la configuration.

Devolutions Server ou Devolutions Hub Business est nécessaire pour la configuration ainsi qu'une licence Devolutions Gateway.

Installer Devolutions Gateway

  1. Naviguer vers la page Devolutions Gateway GitHub Release et télécharger le fichier .deb de la dernière version.
  2. Entrer la commande suivante 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. Installer le paquet en utilisant l'utilitaire dpkg : sudo dpkg -i devolutions-gateway_2024.3.2.0_amd64.deb

Les paquets de configuration et binaires se trouvent aux emplacements suivants :

  • Configuration : /etc/devolutions-gateway

  • Binaire : /usr/bin/devolutions-gateway

Mettre à jour Devolutions Gateway

Pour mettre à jour Devolutions Gateway sur Linux, télécharger le dernier paquet comme expliqué dans la section précédente et exécuter 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. Installer PowerShell avec cette commande :

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

    Install-Module -Name DevolutionsGateway
    Import-Module -Name DevolutionsGateway

Une fois installé, la configuration Devolutions Gateway peut être démarrée, arrêtée, visualisée ou modifiée.

Configurer les certificats

Une confiance appropriée des certificats entre les systèmes est essentielle pour faire fonctionner Devolutions Gateway. Des fonctionnalités telles que les websockets utilisées dans les vues de tableau de bord web de RDP, SSH, etc., nécessitent un certificat correctement approuvé. Un certificat généré sur le système Linux et approuvé par les ordinateurs utilisés pour se connecter est nécessaire.

Générer un certificat auto-signé sur Ubuntu 22.04 LTS via OpenSSL

Utiliser l'utilitaire OpenSSL pour générer un certificat directement depuis la ligne de commande. Le certificat doit ensuite être placé directement dans le répertoire de configuration /etc/devolutions-gateway.

sudo openssl req -x509 -subj "/C=CA/ST=Quebec/L=Lavaltrie/O=Devolutions/CN=ubuntu-2204" -addext "subjectAltName = IP:10.10.0.20" -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.

Options de personnalisation

Explication

req

Créer et traiter les demandes de certificat, y compris les certificats auto-signés au format PKCS#10.

-x509

Produire un certificat auto-signé.

-subj

Définir le sujet du certificat sur la ligne de commande. Il ne doit pas y avoir d'espaces entre les sections.

  • /C - Pays en code à 2 chiffres, tel que "CA" pour le Canada ou "US" pour les États-Unis.

  • /ST - État ou Province, tel que Québec ou Californie.

  • /L - Localité, telle que Lavaltrie ou Sacramento.

  • /O - Organisation, telle que Devolutions ou Microsoft.

  • /CN - Nom commun, ici ubuntu-2204 (comme indiqué via la commande hostname).

-addext

Pour ajouter un nom alternatif de sujet (SAN), vous pouvez utiliser ce paramètre pour définir soit une entrée IP ou DNS.

  • "subjectAltName = IP:10.10.0.20"

  • "subjectAltName = DNS:ubuntu-2204"

-nodes

Ne pas chiffrer la clé privée créée.

-days

Le nombre de jours pendant lesquels le certificat est valide.

-newkey

Définir l'algorithme et la taille des bits, ici rsa:2048 est utilisé.

-keyout

L'emplacement pour créer le fichier de clé privée.

-out

L'emplacement pour créer le fichier de clé publique.

Approuver le certificat auto-signé sur Ubuntu

Une fois le certificat auto-signé créé, le certificat au sein du système Ubuntu devra être approuvé. Pour approuver à l'échelle du système, utiliser la série de commandes suivante :

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

Les ca-certificates peuvent déjà être installés. 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.

Si cela est fait dans Firefox, plusieurs erreurs de confiance apparaîtront car le navigateur n'utilise pas le magasin de certificats à l'échelle du système. Leur documentation offre quelques solutions à cela.

Approuver le certificat auto-signé sur Windows

Après la création du certificat auto-signé, il devra être approuvé sur Devolutions Server. Les fichiers server.crt et server.key devront être transférés sur le système Windows ; ou copier et coller le contenu dans des fichiers (c'est-à-dire sudo cat server.crt dans Ubuntu et copier cela dans un fichier texte sur Windows).

  1. Copier la clé publique sur Windows (dans l'exemple, C:\Gateway est un emplacement temporaire) :
    sudo cat server.crt
  2. Copier le contenu dans un fichier server.crt.
  3. Copier la clé privée sur Windows :
    sudo cat server.key
  4. Copier le contenu dans un fichier server.key.
  5. Créer un fichier PFX en utilisant l'outil en ligne de commande certutil de Windows. Pour que cela fonctionne, le fichier de clé doit avoir le même nom que le fichier crt, ne différant que par l'extension :
    certutil -mergepfx server.crt server.pfx
  6. Importer le fichier PFX dans le Trusted Root Certification Authorities Certificate Store.
    1. Double-cliquer sur le fichier server.pfx pour démarrer l'assistant d'importation et choisir Local Machine.
    2. Cliquer sur Next et accepter l'invite.
    3. Cliquer sur Next.
    4. Entrer le mot de passe que vous avez saisi avec la commande certutil.
      • Optionnellement : choisir de Mark this key as exportable.
    5. Cliquer sur Next.
    6. Choisir l'option Place all certificates in the following store.
    7. Sélectionner Trusted Root Certification Authorities avec le bouton Browse....
    8. Cliquer sur Finish pour terminer 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écuter les commandes suivantes pour ouvrir les ports nécessaires :
sudo ufw status
sudo ufw allow 7171
sudo ufw allow 8181
sudo ufw status

Modifier la configuration Devolutions Gateway

La configuration par défaut d'une passerelle contenue dans le fichier /etc/devolutions-gateway/gateway.json nécessite l'ajout des directives de certificat (l'InternalUrl devra utiliser HTTPS) :
{
"Id": "YOUR-UNIQUE-GUID",
"ProvisionerPublicKeyFile": "provisioner.pem",
"ProvisionerPrivateKeyFile": null,
"Listeners": [
{
"InternalUrl": "tcp://
:8181",
"ExternalUrl": "tcp://
:8181"
},
{
"InternalUrl": "http://
:7171",
"ExternalUrl": "https://
:7171"
}
]
}

Modifier 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 (il est recommandé d'utiliser l'éditeur de fichiers intégré nano) :
{
"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

Avec la nouvelle configuration en place, redémarrer Devolutions Gateway. Cela peut être fait avec la commande systemctl :
sudo systemctl restart devolutions-gateway.service
sudo systemctl status devolutions-gateway.service

Alternativement, 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. Se connecter à la console web Devolutions Server et naviguer vers AdministrationDevolutions Gateway.
  2. Cliquer sur le bouton More et choisir l'option Download public key.
  3. Copier le contenu du fichier téléchargé gateway_public_key.pem sur Windows.
  4. Remplacer le contenu du fichier /etc/devolutions-gateway/provisioner.pem (il est recommandé d'utiliser l'utilitaire nano) par le contenu copié depuis Windows.
  5. Redémarrer Devolutions Gateway avec la commande sudo systemctl restart devolutions-gateway.service.

Configurer Devolutions Gateway dans Devolutions Server

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

Avant de créer la configuration de la passerelle, ajouter les informations de licence nécessaires dans AdministrationLicenses. Attribuer la licence selon les besoins lors de la configuration.

  1. Se connecter à la console web Devolutions Server et naviguer vers AdministrationDevolutions Gateway.
  2. Cliquer sur le bouton Add (+).
  3. Entrer les informations suivantes (cela changera en fonction de la configuration).
    1. Name : Linux Gateway
    2. Devolutions Gateway URL: https://10.10.0.20:7171
    3. TCP Hostname: Ubuntu-2204

Cliquez sur le menu d'options More pour la passerelle et choisissez l'option Publish revocation list si la liste de révocation est obsolète.

Résoudre les hôtes dans Ubuntu

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

Se connecter au système suivant :

  • Hostname : it-help-dc
  • Fully-Qualified Domain Name (FQDN) : it-help-dc.ad.it-help.ninja
  • IP Address : 10.10.0.3

Ouvrir le fichier hosts pour l'édition sudo nano /etc/hosts pour ajouter l'hôte dans Ubuntu.

Ouvrir une session RDP basée sur le web

La passerelle peut maintenant se connecter aux hôtes. Puisque l'hôte it-help-dc a été ajouté comme résolvable pour Ubuntu, il peut être utilisé pour se connecter dans une session basée sur le web.

Les sessions basées sur le web nécessitent une passerelle active configurée pour l'entrée et l'utilisateur lançant nécessitera une licence Remote Desktop Manager Team edition assignée ou une licence Devolutions Launcher.

De plus, si des modifications ont été apportées aux attributions de licence, il peut être nécessaire de se déconnecter et de se reconnecter pour voir l'option de lancer la connexion basée sur le web.

  1. Naviguer vers un coffre et créer une nouvelle entrée de session RDP.
  2. Entrer un Name et un Host qui doivent être résolvables par l'installation Linux Devolutions Gateway.
  3. Entrer ou lier les identifiants nécessaires à la session RDP.
  4. Sous l'onglet VPN/Tunnel/Gateway, choisir Devolutions Gateway comme type de VPN.
  5. Définir l'option Connect sur Always connect.
  6. Choisir le bon Devolutions Gateway.
  7. Cliquer sur Add.
  8. Cliquer sur Open in Web Client (Preview).

Ouvrir une session RDP Remote Desktop Manager

Si l'entrée est déjà configurée depuis l'interface web Devolutions Server, elle peut être lancée depuis Remote Desktop Manager lorsqu'elle est connectée à la source de données Devolutions Server.

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

  1. Naviguer vers un coffre et créer une nouvelle entrée de session RDP.
  2. Entrer un Name et un Host qui doivent être résolvables par l'installation Linux Devolutions Gateway.
  3. Entrer ou lier les identifiants nécessaires à la session RDP.
  4. Sous l'onglet VPN/Tunnel/Gateway, choisir Devolutions Gateway comme type de VPN.
  5. Définir l'option Connect sur Always connect.
  6. Choisir le bon Devolutions Gateway.
  7. Cliquer sur Add.
  8. Cliquer sur le bouton Open session.

En survolant la barre de titre, une info-bulle apparaîtra et montrera que le RDP est connecté via Devolutions Gateway.

Activer l'interface web Devolutions Gateway

À partir de la version 2024.1.0 et suivantes, une nouvelle interface web Devolutions Gateway a été ajoutée. Modifier le gateway.json pour ajouter la section suivante sur WebApp en utilisant un utilitaire tel que sudo nano /etc/devolutions-gateway/gateway.json.

Auparavant, le ProvisionerPrivateKeyFile était défini comme null. Lors de l'activation de l'application web, le fichier doit être copié de Devolutions Server vers un fichier accessible à Devolutions Gateway. Comme indiqué dans la section précédente, effectuer la même procédure mais télécharger la clé privée à la place et la transférer sur le système Ubuntu.

{
"Id": "YOUR-UNIQUE-GUID",
"ProvisionerPublicKeyFile": "provisioner.pem",
"ProvisionerPrivateKeyFile": "provisioner.key",
"TlsCertificateFile": "server.crt",
"TlsPrivateKeyFile": "server.key",
"Listeners": [
{
"InternalUrl": "tcp://
:8181",
"ExternalUrl": "tcp://
:8181"
},
{
"InternalUrl": "https://
:7171",
"ExternalUrl": "https://
:7171"
}
],
"WebApp": {
"Enabled": true,
"Authentication": "None"
}
}

Une fois modifié, redémarrer la passerelle : sudo systemctl restart devolutions-gateway.service.

Devolutions Forum logo Donnez-nous vos commentaires