vista de área de trabalho remota de uma máquina Debian Lenny

1

Deixe-me dar um resumo da especificação do meu projeto. Eu tenho um servidor windows e um monte de clientes debian na mesma LAN, máquinas Debian não possuem sistema x window, eles são obrigados a usar a linha de comando. Estou executando um aplicativo QT no início do sistema para que o usuário interaja apenas com minha GUI antes de ver qualquer outra coisa.

De acordo com os requisitos do meu projeto, nós devemos permitir que os administradores do sistema vejam o que o usuário final está fazendo nas máquinas da Debian a qualquer momento, portanto ele deve poder ver suas telas a qualquer momento. Ele estará usando uma máquina windows para fazer isso. Portanto, eu estou querendo saber se é possível compartilhar a tela do debian com um servidor windows, e o que estaria envolvido nisso.

Eu preciso da configuração do servidor VNC nas máquinas da Debian para conseguir isso? Existe alguma outra maneira?

    
por erin c 05.09.2012 / 15:04

1 resposta

1

No caso de você ter apenas o uso do terminal no lado do cliente (você disse que não tem nenhum tipo de xserver em execução nos hosts do cliente), tenho uma sugestão de como você pode conseguir isso. Na verdade, é um exemplo mínimo, mas facilmente expansível, que mostra como você pode monitorar uma sessão de terminal em um host remoto. Eu não conheço nenhum software especial para isso e, provavelmente, existem várias maneiras de conseguir isso mais elegante, então, por favor, não espere muito.

Meu primeiro conselho é instalar rootsh no lado do cliente.

It's a wrapper for shells which logs all echoed keystrokes and terminal output to a file and/or to syslog [rootsh website]

Infelizmente, o seu repositório Debian não está cheio dele, então você tem que fazer seus próprios binários. O que é fácil de conseguir, já que o rootsh não possui dependências sofisticadas. Ainda mais, você precisa de socat , uma ferramenta para transferência de dados bidirecional.

Se você invocar rootsh like

./rootsh -i -f logfile

um novo shell de login inicia um eco de tudo no terminal deste shell ou qualquer processo filho é gravado em logfile (também caracteres especiais originalmente destinados ao tty).

Agora você pode criar um soquete TCP no cliente com

socat OPEN:logfile,ioreeof TCP-LISTEN:22222,fork

a partir do qual você pode ler a partir do host do administrador. Por exemplo com

 socat TCP:clientdomain:22222 STDOUT

ou com netcat , ou seja, telnet (os binários do Windows para socat estão disponíveis).

Caso você deseje ter um fluxo de dados mais seguro entre os nós, também é possível instruir socat para criptografá-lo via OPENSSL . Você pode encontrar uma ótima explicação sobre isso no artigo Protegendo o tráfego entre duas instâncias do Socat usando SSL .

Admito que minha abordagem tem várias falhas, mas é suficiente para ilustrar o que é possível sem ferramentas especiais.

    
por 05.09.2012 / 19:44