Recherche de site Web

ttyd : Partagez en toute sécurité votre terminal Linux sur le Web


ttyd est un outil en ligne de commande léger et open-source qui vous permet de partager votre session de terminal Linux via un navigateur web. En utilisant WebSockets, ttyd vous permet d'interagir avec le terminal à distance comme si vous étiez directement sur la machine, ce qui le rend idéal pour l'administration à distance, la collaboration en équipe ou les démonstrations éducatives.

Cet outil enveloppe une application terminale (comme bash) et fournit une interface simple basée sur le web accessible depuis n'importe quel navigateur moderne. Avec sa facilité d'installation et ses fonctionnalités de sécurité personnalisables comme l'authentification de base et SSL, ttyd est une solution puissante pour accéder et partager des sessions terminales sur le web.

Cas d'utilisation :

  • Accès à distance à un système Linux depuis n'importe quel appareil avec un navigateur.
  • Permettre à plusieurs utilisateurs d'interagir avec le même terminal.
  • Démontrez des commandes et des flux de travail en temps réel, utile pour l'enseignement ou les ateliers.

Cet article explorera l'installation, la configuration et l'utilisation de ttyd sur un système basé sur Linux.

Installer ttyd sur Linux

Le processus d'installation de ttyd sur un système Linux est simple, mais il nécessite certaines dépendances. Ci-dessous, les étapes d'installation pour un système basé sur Debian (comme Ubuntu). Le processus sera légèrement différent sur d'autres distributions, mais les étapes principales restent similaires.

Tout d'abord, assurez-vous que votre système dispose des outils de compilation et des bibliothèques requis.

sudo apt update
sudo apt install -y git cmake build-essential libjson-c-dev libwebsockets-dev

Ensuite, clonez le dépôt officiel ttyd depuis GitHub :

git clone https://github.com/tsl0922/ttyd.git
cd ttyd

Une fois le dépôt cloné, créez un répertoire de compilation, exécutez cmake, et compilez le code source :

mkdir build
cd build
cmake ..
make
sudo make install

Utilisation de base de ttyd sous Linux

Une fois installé, ttyd peut être exécuté directement depuis le terminal en fournissant une commande shell comme argument.

ttyd bash

Cela va démarrer un serveur web sur le port par défaut (7681) et fournir un accès à un shell bash via une interface web à l'URL suivante.

http://localhost:7681

Ouvrez cette adresse dans un navigateur web, et vous verrez un terminal interactif où vous pouvez exécuter des commandes shell.

Au lieu de démarrer bash, vous pouvez également exécuter d'autres commandes ou applications dans le terminal. Par exemple, vous pouvez exécuter top (un outil de surveillance système) dans le terminal :

ttyd top

Partager le terminal sur le web

Par défaut, ttyd se lie à localhost, ce qui le rend accessible uniquement depuis la machine locale. Pour permettre aux utilisateurs distants de se connecter, vous devez lier ttyd à une adresse IP publique ou privée.

Lier ttyd à une adresse IP spécifique

Vous pouvez spécifier le port et l'adresse auxquels ttyd doit se lier :

ttyd -p 8080 bash

Dans ce cas, ttyd écoutera sur le port 8080. Si vous devez y accéder depuis une autre machine sur le même réseau, vous pouvez utiliser l'adresse IP locale de la machine :

http://local-ip:8080

Pour trouver votre adresse IP locale, utilisez la commande ip suivante :

ip a

Si vous avez besoin d'exposer ttyd sur Internet, assurez-vous que votre pare-feu UFW autorise le trafic entrant sur le port choisi, et redirigez le port via votre routeur (si nécessaire).

Sécurisez votre terminal web ttyd

Exposer un terminal sur le web peut introduire des risques de sécurité importants s'il n'est pas configuré correctement. Voici quelques mesures de sécurité de base que vous devriez prendre lors de l'utilisation de ttyd :

1. Activer la protection par mot de passe sur ttyd

Par défaut, ttyd ne nécessite pas d'authentification. Pour ajouter une couche de sécurité, utilisez l'option -c pour spécifier un nom d'utilisateur et un mot de passe pour l'accès.

ttyd -p 8080 -c user:password bash

Cela demandera aux utilisateurs les identifiants user et password avant d'accorder l'accès au terminal.

2. Activer SSL pour ttyd

Pour chiffrer la communication entre le client (navigateur) et le serveur, il est fortement recommandé d'activer SSL. Vous pouvez exécuter ttyd avec SSL en utilisant l'option --ssl. Cependant, vous aurez besoin de certificats SSL valides pour cela :

ttyd --ssl -p 443 bash

Dans ce cas, vous devrez fournir les chemins vers votre certificat SSL et votre clé privée (via les options --ssl-cert et --ssl-key).

3. Limiter l'exposition du réseau ttyd

Au lieu d'exposer ttyd à l'internet public, envisagez d'utiliser un VPN ou de configurer un proxy inverse (comme Nginx) pour ajouter des couches de sécurité supplémentaires.

Il est recommandé d'exécuter ttyd sur une IP privée ou de limiter l'accès avec des règles de pare-feu dans les environnements où la sécurité est critique.

Utilisation avancée de ttyd

ttyd offre plusieurs options en ligne de commande pour affiner son comportement. Certaines des options les plus utiles sont les suivantes :

  • -p <port> – Définissez le port sur lequel le serveur web écoutera.
  • -c <user:password> – Active l’authentification de base avec le nom d’utilisateur et le mot de passe spécifiés.
  • --ssl – Activer SSL/TLS pour une communication sécurisée.
  • -t <terminal> – Définir des paramètres spécifiques au terminal, tels que la taille de la police et la couleur.
Conclusion

ttyd est un outil polyvalent et efficace pour partager des sessions de terminal sur le web, qui peut être utilisé pour l'administration à distance, la collaboration et à des fins éducatives, et il est simple à configurer.

Cependant, il est crucial d'appliquer des mesures de sécurité appropriées, telles que l'authentification et le chiffrement SSL, lorsqu'on l'utilise dans des environnements de production.