Aller au contenu

Bastion RDP avec Teleport

Nombre de machines limité

Teleport dans sa version Community Edition ne supporte que 5 PC maximum (hors AD). Personnellement je préfère Meshcentral à Teleport.

Windows 11

Afin de bénéficier de l'auto-login lors de la connexion à une machine Windows 11, il faut désactiver la Protection de l'autorité de sécurité locale dans les paramètres Isolation du noyau. Baisser la sécurité d'un système n'est clairement pas une pratique que je recommande. Cela se limitera donc au lab.

Prérequis

  • Un serveur GNU/Linux avec Teleport
  • Un serveur DNS local
  • Une autorité de certification (Step CA) ou avoir un outil pour générer des certificats (openssl, mkcert...)
  • Une ou deux machines Windows (version 10 et/ou 11)

Configuration du serveur Teleport

Nous allons configurer le serveur directement. Sachez qu'il est possible de passer par un proxy Teleport.

Editez le fichier /etc/teleport.yml

Fichier /etc/teleport.yml
/etc/teleport.yaml 
version: v3
teleport:
  nodename: srv-teleport-lab
  # Ajout du répertoire contenant le token temporaire 
  # pour les machines Windows
  auth_token: /tmp/token
  data_dir: /var/lib/teleport
  log:
    output: stderr
    severity: INFO
    format:
      output: text
  ca_pin: ""
  diag_addr: ""
auth_service:
  enabled: "yes"
  listen_addr: 0.0.0.0:3025
  cluster_name: teleport.maison.lab
  proxy_listener_mode: multiplex
ssh_service:
  enabled: "yes"
proxy_service:
  enabled: "yes"
  web_listen_addr: 0.0.0.0:443
  public_addr: teleport.maison.lab:443
  https_keypairs:
  - key_file: /var/lib/teleport/teleport.key
    cert_file: /var/lib/teleport/teleport.crt
  https_keypairs_reload_interval: 0s
  acme: {}

# Déclaration du service Windows desktop  
windows_desktop_service:
  enabled: yes
  listen_addr: 0.0.0.0:3028
  public_addr: teleport.maison.lab:3028
  # Déclaration des hôtes WIndows
  static_hosts:
  - name: cltwin-01 # Windows 11
    ad: false
    addr: 192.168.1.228
  - name: cltwin-02 # Windows 10
    ad: false
    addr: 192.168.1.229
  ```

On crée ensuite un token valable 30 minutes.

```bash "Création du token"
tctl tokens add --type=windowsdesktop

Copiez ce token et collez-le dans /tmp/token.

Relancez le service Teleport.

Sur l'interface web de Teleport, rendez-vous sur Access Management > Users et éditez votre utilisateur. Ajoutez une key windows_login et renseignez le nom d'utilisateur qui existe localement sur vos machines Windows. Dans ma cas, cela sera localadm.

localadm

Afin que cela soit pris en compte une fois validé, vous devez vous déconnecter de l'application puis vous reconnectez.

Configuration de Teleport sur les postes Windows

Particularité de Windows 11

Comme indiqué en introduction, nous devons désactiver la Protection de l'autorité de sécurité locale dans les paramètres Isolation du noyau, sinon vous devrez vous identifier manuellement lors de la connexion à distance au système.

Protection de l'autorité de sécurité locale

Redémarrez le PC.

Sur Windows 10 et 11

1ère étape : Activez le bureau à distance.

2ème étape : Importez le certificat de votre CA dans les autorités de confiance avec certlm.msc exécuté en tant qu'administrateur.

3ème étape : Installez Curl. Récupérez l'archive ici https://curl.se/windows/dl-8.10.1_2/curl-8.10.1_2-win64-mingw.zip et dézipez là dans c:\curl.

4ème étape : Ouvrez une console en tant qu'administrateur puis saisissez les commandes suivantes.

cd c:\curl
.\curl.exe --ssl-no-revoke -fo teleport.cer https://teleport.maison.lab/webapi/auth/export?type=windows
.\curl.exe -fo teleport-windows-auth-setup-v16.4.10-amd64.exe https://cdn.teleport.dev/teleport-windows-auth-setup-v16.4.10-amd64.exe
.\teleport-windows-auth-setup-v16.4.10-amd64.exe install --cert=teleport.cer -r

Et voilà. Vous devriez être en mesure d'accéder aux machines Windows déclarées depuis l'interface web.

Liste des ressources

Notez que si vous souhaitez pouvoir bénéficier des fonctionnalités comme le clipboard, il vous faudra passer par Chrome ou Chromium car non disponible sur Firefox.

Windows 11

Remarquez la page concernant le blocage des programmes par Windows 11. Solution proposée : désactiver le message indiquant que le module ne peut être chargé. Du Microsoft dans toute sa splendeur.

Conclusion

Il est possible de passer par l'AD. Cela remonte automatiquement toutes les machines intégrées à l'AD et sans limite du nombre de postes. Cependant cela implique de monter une autorité de certification sur le serveur AD. J'ai tenté de produire moi-même le certificat sans passer par Windows et ce fut une galère sans nom qui n'a jamais abouti.

Au final je me suis tourné vers Meshcentral qui répond à mes attentes avec les fonctionnalités d'un RMM. Et si besoin d'un accès temporaire et de manière ponctuelle, pensez à Rustdesk.