Introduction

Introduction

Si vous avez déjà été en charge d'un réseau, vous avez certainement eu besoin d'une connexion à distance sécurisée. Peut-être que vous avez juste besoin de garder un œil sur les employés ou les enfants. Cela peut être un problème pour traverser des réseaux et des sous-réseaux. En plus de cela, de nombreuses entreprises peuvent avoir Internet, mais pas de DHCP à des machines plus protégées. Beaucoup font cela pour réseauter tout en empêchant les employés de surfer sur le Web. Quoi qu'il en soit, Linux a de nombreux excellents outils pour permettre l'administration de GUI cryptée à distance. Encore mieux, nous obtiendrons tout ce dont nous avons besoin gratuitement pour accéder à un client Linux ou Windows.

Exigences

Vous devriez avoir des privilèges racine sur la machine que vous souhaitez surveiller ainsi que sur les clients. Vous n'êtes pas obligé d'avoir des droits d'administrateur sur un client Windows si vous pouvez au moins activer le bureau à distance. Pour suivre ce tutoriel, vous pouvez utiliser des machines virtuelles si vous n'avez pas de clients physiques pour tester. Tant que vous avez les droits ci-dessus et une adresse IP, vous devriez être bien.

Avertissement légal

Bien que j'ai déjà mentionné des fins légitimes pour ce tutoriel, il peut être abusé. Le but de cette rédaction est d'aider les gens à réseauter leurs propres machines. Veuillez utiliser ces informations pour la surveillance légale des clients uniquement!

Configuration de notre hôte

La première chose que vous devez faire est de télécharger les packages nécessaires avec APT-GET, si vous êtes sur Debian ou dérivés:

# apt-get install xrdp openssh-server 

Après cela, nous devons faire une configuration pour nous assurer que notre serveur SSH s'exécute correctement. Dans un type terminal «SSH-Keygen» pour créer les clés RSA pour le chiffrement. Vous verrez un art ASCII passer et puis c'est fait. Très probablement, vos clés RSA seront stockées dans / home // nom d'utilisateur /.ssh / si jamais vous avez besoin de les trouver.

Maintenant, nous pouvons vérifier pour nous assurer que tout fonctionne.

$ netstat -antp proto recv-q send-Q adresse locale adresse état état de pid / programme TCP 0 0 0.0.0.0:22 0.0.0.0: * Écoutez 6294 / SSHD TCP 0 0 127.0.0.1: 3350 0.0.0.0: * Écoutez 6230 / XRDP-SESMAN TCP 0 0 0.0.0.0: 3389 0.0.0.0: * Écoutez 6227 / XRDP 

Exécuter cette commande netstat, nous devrions voir quelque chose comme ça. De toute évidence, le port 22 est notre serveur SSH. 3389 est le port du serveur RDESKTOP qui attend des connexions. L'autre est un port pour notre utilisation du client RDP pour se connecter et afficher.

Configuration du client Windows

Maintenant que nous avons configuré notre hôte Linux, nous devons faire de même pour notre client Windows. Pour Windows, nous commençons par activer le bureau à distance. Dans Windows XP, vous allez démarrer-> Tous les programmes-> Accessoires-> Connexion de bureau à distance. Pour le tunnel SSH, nous utiliserons Plink. Téléchargez simplement Plink.exe et déposez le .Fichier EXE dans un sous-dossier, ou quelque part il ne sera pas remarqué. Nous ferons de même avec Netcat pour notre connexion initiale.

Faire la connexion

Depuis le client Windows, nous commencerons par ouvrir un shell temporaire sur le port 1234.

C: \> nc -lvp 1234 -e cmd.exe 

Avec la syntaxe ci-dessus, nous devrions maintenant avoir un shell Windows écoutant sur le port 1234. Si votre distribution ne vient pas avec Netcat préinstallé, vous pouvez l'installer via votre gestionnaire de packages. Que Yum, Pacman ou APT-Get, la syntaxe devrait aller comme ceci:

# apt-get install netcat 

Nous pouvons maintenant utiliser Netcat sur notre hôte Linux pour se connecter et obtenir un shell. Le paramètre -v dit que Netcat est verbeux. L'adresse IP utilisée ici est l'adresse du client Windows. Enfin, 1234 est le port auquel nous souhaitons nous connecter.

$ nc -v 192.168.1.12 1234 

Maintenant, nous devrions avoir une invite de commande Windows pour le client distant sur notre machine Linux. J'ai choisi 192.168.1.12 pour l'adresse IP de la machine Windows. Utilisez tout ce qui convient à votre réseau.

Une fois cela fait, nous pouvons exécuter Plink à partir du shell Windows sur notre hôte Linux.

C: \> plink -l nom d'utilisateur -pw mot de passe -r 3390: 127.0.0.1: 3389 192.168.1.11 

Ce que nous avons fait ici, c'est dire à Plink le nom d'utilisateur et le mot de passe pour l'hôte Linux, nous sommes sur le point de nous connecter. Le paramètre -r est utilisé pour dire à SSH que cela va à un hôte distant. Le numéro 3390 auquel nous connectons ici est le port de notre machine Linux. Nous ne pouvons pas utiliser 3389 car ce port est déjà utilisé par XRDP. Évidemment 127.0.0.1 est l'adresse de bouclage sur la machine Windows. 3389 est le port de la machine Windows que nous devons transmettre à Linux. Enfin, 192.168.1.11 est l'adresse IP que j'utilise pour notre hôte Linux auquel nous voulons nous connecter.

Si tout se passait comme prévu, nous devrions voir quelque chose comme ça de Netstat.

$ netstat -antp proto recv-q send-Q adresse locale adresse état état de pid / programme TCP 0 0 0.0.0.0:22 0.0.0.0: * Écoutez 6294 / SSHD TCP 0 0 127.0.0.1: 3350 0.0.0.0: * Écoutez 6230 / XRDP-SESMAN TCP 0 0 127.0.0.1: 3390 0.0.0.0: * Écoutez 6227 / XRDP 

Comme vous pouvez le dire, la machine Windows est connectée sur 127.0.0.1: 3389. Exécuter simplement RDESKTOP sur 127.0.0.1 devrait ouvrir des fenêtres sur notre machine Linux.

$ rdesktop 127.0.0.1 

Vous pouvez maintenant fermer NetCAT et utiliser le bureau de bureau à distance sur SSH. Je dois noter ici que laisser une coquille ouverte comme je viens de le faire peut présenter un risque de sécurité élevée. Si possible, vous devez démarrer ceci du client Windows avec la même syntaxe pour éviter d'ouvrir un shell au monde entier.

Connexion sans DHCP

Ce que nous avons fait peut ne pas impressionner certains d'entre vous. La connexion d'une machine à une autre sur le même sous-réseau n'est pas si difficile. Mais nous allons maintenant essayer de nous connecter à un autre sous-réseau. Celui qui a Internet, mais pas de DHCP. Nous ferons semblant de la boîte à 10.0.0.10 a une page Web sur le port 80. Nous ferons également semblant du client Windows sur 192.168.1.12 a deux cartes réseau et donc deux adresses IP pour parler aux deux réseaux. Puisque nous ne sommes pas sur ce sous-réseau et sans DHCP, nous ne pouvons pas simplement le visualiser en tapant l'adresse IP dans notre navigateur. SSH nous permettra de tuer sur cette machine et d'envoyer le service et la page Web en cours d'exécution sur le port 80 à notre hôte Linux.

C: \> plink -l nom d'utilisateur -pw mot de passe -R 8080: 10.0.0.10:80 192.168.1.11 

Ici, nous avons utilisé presque la même syntaxe avec Plink qu'avant. J'ai décidé que je voulais que la connexion commence sur le port 8080 sur mon hôte Linux. Cette fois, nous avons utilisé l'IP de la machine à laquelle nous voulions nous connecter au lieu de 127.0.0.1. Nous avons choisi de nous y connecter sur le port 80. Enfin, nous avons envoyé cette connexion via le client Windows et retour à l'hôte Linux sur 192.168.1.11. Le service de 10.0.0.10 est maintenant lié à un port 8080 sur le Host local de notre boîte Linux. Utilisez http: // 127.0.0.1: 8080 dans la barre d'adresse de votre navigateur pour voir la page Web de 10.0.0.dix.

Changer le scénario en clients Linux

J'ai été surpris de trouver l'administration de l'interface graphique à tunnels sur SSH était beaucoup plus simple avec les clients Linux. Aucun package XRDP n'était même nécessaire. Seul un serveur SSH était nécessaire sur le client que nous souhaitons surveiller et un client SSH notre boîte. De notre ligne de commande, nous commençons par ceci:

$ ssh -x nom d'utilisateur @ 10.0.0.dix 

Ici, nous nous connectons au SSH du client avec -x pour permettre le transfert x11. Nous serons invités au mot de passe de l'utilisateur et emmenés dans un shell sécurisé. Pour créer une session GUI interactive, sera spécifique à votre bureau. Pour KDE, tapez simplement ce qui suit:

$ startx -: 1

Les utilisateurs du bureau GNOME devront plutôt utiliser cette commande:

$ gnome-session 

Tous les utilisateurs qui rencontrent des problèmes avec cela devraient chercher à configurer les fichiers Xinitrc et / ou XSESSION de Thier Distro. Les lignes de ces fichiers peuvent varier entre les distributions et être stockées dans de nombreux endroits différents. Cependant, j'ai trouvé de nombreuses distributions, comme Debian SID, travaillant sans configurer ni dépannage. Veuillez consulter la documentation de votre distribution pour obtenir de l'aide.

Une fois que vous avez publié la commande de votre session de bureau, vous devriez avoir un bureau GUI de la boîte distante. Contrairement à XRDP, cette session enveloppera votre moniteur complet au lieu d'une fenêtre évolutive. Vous pouvez basculer entre la session distante et votre bureau local en basculant entre Control + Alt + F7 et Control + Alt + F8. Assurez-vous de ne pas fermer la session avec la machine distante. Cela peut arrêter le client à partir de votre surveillance et ne pas faire de détective très furtif.

Maintenant que nous sommes à l'intérieur de la machine distante, nous pouvons utiliser peut utiliser son client SSH ou ses proxychains pour tunnel plus profondément. Cela nous permettra de sauter sur des réseaux avec ou sans DHCP comme avant.

Conclusion

Bien que ce type de surveillance puisse sembler intrusif, tout administrateur sérieux aura besoin de le faire à un moment donné. Que vous ayez besoin de réparer une machine distante avec une application GUI ou de vous assurer que vos employés n'enregistrent pas les photos obscènes sur une machine de travail. L'utilisation de SSH vous protège non seulement des attaquants, mais il permet également aux tunnels de réseaux que vous ne pouvez même pas faire un ping, en utilisant ce type d'administration vous permet de surveiller sans être facilement remarqué par les clients ou interrompre leur travail. Veuillez utiliser ces informations de manière responsable et rappelez-vous: «Avec une grande puissance, une grande responsabilité."

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Configuration du réseau sur Manjaro Linux
  • Comment tester la connexion Internet sur Linux
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Comment gérer les connexions sans fil à l'aide de IWD sur Linux
  • Linux: Configuration SSH
  • Système linux hung? Comment s'échapper vers la ligne de commande et…