Contrôle à distance d'un poste

Exécution de commandes à distance sur le poste

Il est possible de dialoguer avec le service Scribe installé sur les postes clients avec l'utilitaire cliscribe.py :

La syntaxe de la commande est :

# /usr/share/eole/controlevnc/cliscribe.py <IP_POSTE_CLIENT> <OPTION> <ARGUMENTS>

Truc & astuce

L'option -h permet d'avoir de l'aide sur la commande :

# /usr/share/eole/controlevnc/cliscribe.py -h

La liste des options est :

  • -k ou --killproc <NOM_DU_PROGRAMME>

    termine un programme en cours d'exécution, "explorer.exe" par exemple

  • -s ou --shutdown <NIVEAU>

    permet d'éteindre le poste : 0 = éteindre (défaut), 1 = reboot, 2 = fermeture de session

  • -e ou --execute <NOM_DU_PROGRAMME>

    exécute un programme dans l'environnement du service (BUILTIN\SYSTEM)

  • -eu ou --executeuser <NOM_DU_PROGRAMME>

    exécute un programme dans l'environnement de l'utilisateur connecté s'il y en a un, sinon renvoie une erreur

    (un utilisateur doit avoir une session ouverte)

  • -vc ou --vncconnect <IP_VIEWER_LISTEN>

    exécute la commande winvnc -connect <IP_VIEWER_LISTEN> (vncviewer doit être en mode "listen" sur le poste <IP_VIEWER_LISTEN>)

  • -va <ÉTAT> ou --vncactive <ÉTAT>

    permet de démarrer ou d'arrêter winvnc sur le client :

    0 = arrête winvnc sur IP_CLIENT, 1 = démarre winvnc sur IP_CLIENT

  • -vi <ÉTAT> ou --vncinputs <ÉTAT>

    permet d'activer, désactiver le clavier et la souris pour winvnc sur le client :

    0 = désactive le clavier/souris pour winvnc, 1 = active le clavier/souris pour winvnc

  • -f <FW_ACTION> ou --firewall <FW_ACTION>

    permet de gérer le pare-feu sur le client : activation, désactivation, initialisation, ajout de règles, suppression de règles, modification de la politique par défaut

    <FW_ACTION> doit ressembler à INIT|ADD::rule|DEL::Nom|SETMODE::<in>;;<out>|ACTIVATE::True|False :

    • INIT initialise les règles de bases (fait une simple initialisation, ne lit pas le fichier liste_fwregles.eol)

    • ADD::rule

      Exemple : ADD::'Nom;; ip_src=XX;;ip_dst=XX;;action=XX;;proto=XX;;port_dst=XX;;program=XX'

      • ip_src/dst = me|any|<ip>
      • action=allow|block
      • proto=tcp|udp|icmp|any
    • DEL::Nom

    • SETMODE::<in>;;<out>

    • ACTIVATE::True|False

ExempleTerminer un programme en cours d'exécution

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --killproc firefox.exe

ExempleExécuter un programme dans l'environnement du service

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --execute '\\scribe\wpkg\wpkg_client_install.bat'

(noter les simple quotes ou apostrophes autour de la commande à exécuter)

ExempleInitialiser les règles de bases du pare-feu

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --firewall INIT

ExempleBloquer l'accès au port TCP 123 par la machine 1.2.3.4 vers la machine 172.16.0.45

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --firewall 'ADD::maregle;;ip_src=1.2.3.4;;ip_dst=me;;action=block;;proto=tcp;;port_dst=123'

ExempleBloquer l'accès au réseau/à Internet pour firefox.exe

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --firewall 'ADD::maregle;;ip_src=me;;ip_dst=any;;action=block;;proto=any;;program="C:\Program Files\Mozilla Firefox\firefox.exe"'

Attention

Ne fonctionne que sur Vista et supérieur.

ExempleSupprimer toutes les règles de pare-feu nommées maregle

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --firewall 'DELL::maregle'

Affichage à distance d'un poste client

Il existe 2 méthodes pour prendre la main sur un poste :

  • VNC ;

  • Le Bureau à distance Windows.

VNC

Après s'être connecté en SSH (ssh -X ou putty+Xming) les commandes suivantes permettent l'affichage du poste :

Installer xtightvncviewer

# apt-get install xtightvncviewer

# nohup vncviewer -listen 0 &

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --vncinputs <IP_SCRIBE>

Attention

Cette méthode ne fonctionne que si un utilisateur est connecté sur le poste.

Bureau à distance

Après s'être connecté en SSH (ssh -X ou putty+Xming) :

Installer rdesktop

# apt-eole install rdesktop

Activer le bureau à distance

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --execute 'REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f'

Redémarrer la machine pour prendre en compte l'activation du bureau à distance

# /usr/share/eole/controlevnc/cliscribe.py 172.16.0.45 --shutdown 1 #

Attendre que la machine redémarre et exécuter rdesktop

# rdesktop 172.16.0.45

On peut spécifier une résolution

# rdesktop 172.16.0.45 -g 1400x900

Attention

Cette méthode ferme la session distante s'il y en a une d'ouverte.