Naturalmente, além de ser acessado pelos clientes Windows, o servidor pode também ser acessado pelos clientes Linux da rede. Esta é uma forma prática de disponibilizar alguns aplicativos Windows específicos para os usuários em máquinas Linux, sem precisar manter instalada uma cópia do Windows em dual-boot ou usar o VMware para rodá-lo em uma VM em cada máquina.
Esta solução é muito usada por empresas que migram as estações de trabalho para Linux, mas precisam manter algumas cópias do Windows para rodar alguns aplicativos específicos. Ao invés de manter máquinas com o Windows, ou rodá-lo via VMware, pode fazer mais sentido manter um servidor Windows na rede, com o acesso remoto ativado e permitir que os usuários abram sessões remotas quando necessário.
Nos clientes Linux, usamos o rdesktop, que pode ser tanto utilizado via linha de comando, quanto através do TSclient, Krdc ou outra das interfaces de acesso remoto que oferecem suporte a ele. O uso mais simples para o rdesktop é simplesmente passar o endereço IP ou domínio da máquina remota como argumento, como em:
$ rdesktop 192.168.0.1
O problema é que ele vai utilizar todas as opções default, abrindo uma tela de 800x600 com 256 cores. O protocolo RDP v5 (usado no Windows XP e no 2003 server) suporta o uso de 16 bits de cor. Para ativar o recurso, inclua as opções "-5 -a 16" (o -5 é a versão do protocolo e o -a 16 especifica os bits de cor), como em:
$ rdesktop -5 -a 16 192.168.0.1
Para especificar a resolução, use a opção "-g", seguida pela resolução desejada, como em:
$ rdesktop -5 -a 16 -g 1000x700 192.168.0.1
Ao especificar a resolução, você pode usar qualquer número que adapte a janela ao seu desktop. Não é necessário se limitar às resoluções padrão. Para abrir a sessão em tela cheia, use a opção "-f", como em:
$ rdesktop -5 -a 16 -f 192.168.0.1
(pressione "Ctrl+Alt+Enter" para chavear entre o modo fullscreen e janela)
Outra opção útil, sobretudo ao criar scripts de conexão é a opção "-u", que permite especificar o usuário com o qual será aberta a conexão, de forma que ele já fique pré-selecionado na tela de login. Um exemplo de uso seria:
$ rdesktop -5 -a 16 -u gdh -f 192.168.0.1
Ao acessar uma máquina XP ou 2003 server, você pode também redirecionar o som para o cliente, de forma que os sons dos aplicativos sejam tocados usando a placa de som e caixas do seu micro, ao invés de no servidor. Funciona mesmo que o servidor não possua placa de som.
Esse é um recurso que deve ser usado com cautela em redes com muitos clientes, ou via Internet, pois gera um fluxo de aproximadamente 800 kbits para cada cliente usando o som. Para ativar, adicione a opção "-r sound:local=/dev/dsp", como em:
$ rdesktop -5 -a 16 -r sound:local=/dev/dsp 192.168.0.1
Note que o "/dev/dsp" indica o dispositivo da placa de som no cliente. Se não funcionar da primeira vez, verifique as permissões de acesso (no cliente). Caso necessário, abra as permissões usando o comando "chmod 666 /dev/dsp" (como root, no cliente).
É possível também "compartilhar" pastas no cliente, de forma que os arquivos sejam acessados dentro da sessão remota. Você pode, por exemplo, editar documentos em uma pasta dentro do seu home, usando os programas instalados no servidor. Para isso, adicione a opção "-r disk:nome=pasta", onde o "nome" indica como ele será visto dentro da sessão e a "pasta" é a pasta no cliente que está sendo "compartilhada". Esta opção pode ser usada em combinação com as anteriores, como em:
$ rdesktop -5 -a 16 -r sound:local=/dev/dsp -r disk:arquivo=/home/joao 192.168.0.1
As pastas compartilhadas aparecem dentro do "Meu Computador > Outros", como se fossem compartilhamentos de rede montados:
Para compartilhar o CD-ROM, pendrive ou disquete, basta indicar a pasta onde eles ficam acessíveis, como em "-r disk:cdrom=/mnt/cdrom" ou "-r disk:pendrive=/mnt/pendrive". A observação, nesse caso, é que você vai sempre precisar montar o CD-ROM ou pendrive no cliente para acessá-lo dentro da sessão remota. O comando simplesmente compartilha os arquivos acessíveis dentro da pasta.
É possível, ainda, mapear a impressora, de forma que você consiga imprimir na impressora instalada no seu cliente Linux de dentro dos aplicativos na sessão remota. Se os clientes e o servidor estão na mesma rede local, é mais simples compartilhar a impressora via Cups ou Samba e instalá-la no servidor. O mapeamento de impressoras do RPD, por sua vez, permite usar as impressoras quando isso não é uma opção, como ao acessar um servidor via Internet.
Em primeiro lugar, a impressora deve estar instalada no cliente e você deve conseguir imprimir nela usando o lpr. Nas distribuições derivadas do Debian, instale o pacote "cupsys-bsd" (que substitui o lpr); caso contrário, nada vai funcionar.
Ao conectar no servidor, é preciso especificar o nome da impressora, da forma como é vista pelos aplicativos no cliente e também o driver Windows (esta é a parte mais complicada...) que o servidor vai usar na hora de enviar trabalhos para ela, como em:
$ rdesktop -5 -a 16 -r printer:e230="Lexmark Optra E+ (MS)" 192.168.0.1
Para descobrir o driver da Impressora no Windows, abra o assistente de instalação de impressora, indique o fabricante e copie o nome que aparece no menu da esquerda:
No caso de impressoras paralelas, você pode também redirecionar a porta "/dev/lp0". Nesse caso, você poderia instalar a impressora dentro da sessão remota, como se ela estivesse instalada no próprio servidor, adicionando o parâmetro "-r lptport:LPT1=/dev/lp0" ao comando de conexão. É possível, ainda, redirecionar portas seriais, usando a opção "-r comport:COM1=/dev/ttyS0".
Como viu, o rdesktop suporta um grande número de opções, o que torna os comandos de acesso bastante longos. É aí que entra o TSclient, que permite especificar as opções através de uma interface muito mais amigável. Ele está disponível em várias distribuições; nas derivadas do Debian, você pode instalá-lo via apt-get. A página oficial é a http://gnomepro.com/tsclient/.
Outra opção é criar ícones nos desktops dos usuários. O ícone pode disparar um comando com o rdesktop cuidadosamente personalizado, de forma a já abrir a janela de conexão com a resolução desejada e já especificando o login usado e os parâmetros necessários para compartilhar a impressora e as pastas desejadas, de forma que o usuário tenha apenas o trabalho de clicar.
No KDE, clique com o botão direito sobre o desktop e use a opção "Criar Novo > Link para Aplicativo". O comando a executar vai no campo Aplicativo > Comando". Um exemplo de comando a usar seria: "rdesktop -g 1024x768 -u gdh 192.168.0.1":
TSclient (à esquerda) e propriedades do ícone de atalho com o comando para se conectar ao servidor diretamente
Esta solução é muito usada por empresas que migram as estações de trabalho para Linux, mas precisam manter algumas cópias do Windows para rodar alguns aplicativos específicos. Ao invés de manter máquinas com o Windows, ou rodá-lo via VMware, pode fazer mais sentido manter um servidor Windows na rede, com o acesso remoto ativado e permitir que os usuários abram sessões remotas quando necessário.
Nos clientes Linux, usamos o rdesktop, que pode ser tanto utilizado via linha de comando, quanto através do TSclient, Krdc ou outra das interfaces de acesso remoto que oferecem suporte a ele. O uso mais simples para o rdesktop é simplesmente passar o endereço IP ou domínio da máquina remota como argumento, como em:
$ rdesktop 192.168.0.1
O problema é que ele vai utilizar todas as opções default, abrindo uma tela de 800x600 com 256 cores. O protocolo RDP v5 (usado no Windows XP e no 2003 server) suporta o uso de 16 bits de cor. Para ativar o recurso, inclua as opções "-5 -a 16" (o -5 é a versão do protocolo e o -a 16 especifica os bits de cor), como em:
$ rdesktop -5 -a 16 192.168.0.1
Para especificar a resolução, use a opção "-g", seguida pela resolução desejada, como em:
$ rdesktop -5 -a 16 -g 1000x700 192.168.0.1
Ao especificar a resolução, você pode usar qualquer número que adapte a janela ao seu desktop. Não é necessário se limitar às resoluções padrão. Para abrir a sessão em tela cheia, use a opção "-f", como em:
$ rdesktop -5 -a 16 -f 192.168.0.1
(pressione "Ctrl+Alt+Enter" para chavear entre o modo fullscreen e janela)
Outra opção útil, sobretudo ao criar scripts de conexão é a opção "-u", que permite especificar o usuário com o qual será aberta a conexão, de forma que ele já fique pré-selecionado na tela de login. Um exemplo de uso seria:
$ rdesktop -5 -a 16 -u gdh -f 192.168.0.1
Ao acessar uma máquina XP ou 2003 server, você pode também redirecionar o som para o cliente, de forma que os sons dos aplicativos sejam tocados usando a placa de som e caixas do seu micro, ao invés de no servidor. Funciona mesmo que o servidor não possua placa de som.
Esse é um recurso que deve ser usado com cautela em redes com muitos clientes, ou via Internet, pois gera um fluxo de aproximadamente 800 kbits para cada cliente usando o som. Para ativar, adicione a opção "-r sound:local=/dev/dsp", como em:
$ rdesktop -5 -a 16 -r sound:local=/dev/dsp 192.168.0.1
Note que o "/dev/dsp" indica o dispositivo da placa de som no cliente. Se não funcionar da primeira vez, verifique as permissões de acesso (no cliente). Caso necessário, abra as permissões usando o comando "chmod 666 /dev/dsp" (como root, no cliente).
É possível também "compartilhar" pastas no cliente, de forma que os arquivos sejam acessados dentro da sessão remota. Você pode, por exemplo, editar documentos em uma pasta dentro do seu home, usando os programas instalados no servidor. Para isso, adicione a opção "-r disk:nome=pasta", onde o "nome" indica como ele será visto dentro da sessão e a "pasta" é a pasta no cliente que está sendo "compartilhada". Esta opção pode ser usada em combinação com as anteriores, como em:
$ rdesktop -5 -a 16 -r sound:local=/dev/dsp -r disk:arquivo=/home/joao 192.168.0.1
As pastas compartilhadas aparecem dentro do "Meu Computador > Outros", como se fossem compartilhamentos de rede montados:
Para compartilhar o CD-ROM, pendrive ou disquete, basta indicar a pasta onde eles ficam acessíveis, como em "-r disk:cdrom=/mnt/cdrom" ou "-r disk:pendrive=/mnt/pendrive". A observação, nesse caso, é que você vai sempre precisar montar o CD-ROM ou pendrive no cliente para acessá-lo dentro da sessão remota. O comando simplesmente compartilha os arquivos acessíveis dentro da pasta.
É possível, ainda, mapear a impressora, de forma que você consiga imprimir na impressora instalada no seu cliente Linux de dentro dos aplicativos na sessão remota. Se os clientes e o servidor estão na mesma rede local, é mais simples compartilhar a impressora via Cups ou Samba e instalá-la no servidor. O mapeamento de impressoras do RPD, por sua vez, permite usar as impressoras quando isso não é uma opção, como ao acessar um servidor via Internet.
Em primeiro lugar, a impressora deve estar instalada no cliente e você deve conseguir imprimir nela usando o lpr. Nas distribuições derivadas do Debian, instale o pacote "cupsys-bsd" (que substitui o lpr); caso contrário, nada vai funcionar.
Ao conectar no servidor, é preciso especificar o nome da impressora, da forma como é vista pelos aplicativos no cliente e também o driver Windows (esta é a parte mais complicada...) que o servidor vai usar na hora de enviar trabalhos para ela, como em:
$ rdesktop -5 -a 16 -r printer:e230="Lexmark Optra E+ (MS)" 192.168.0.1
Para descobrir o driver da Impressora no Windows, abra o assistente de instalação de impressora, indique o fabricante e copie o nome que aparece no menu da esquerda:
No caso de impressoras paralelas, você pode também redirecionar a porta "/dev/lp0". Nesse caso, você poderia instalar a impressora dentro da sessão remota, como se ela estivesse instalada no próprio servidor, adicionando o parâmetro "-r lptport:LPT1=/dev/lp0" ao comando de conexão. É possível, ainda, redirecionar portas seriais, usando a opção "-r comport:COM1=/dev/ttyS0".
Como viu, o rdesktop suporta um grande número de opções, o que torna os comandos de acesso bastante longos. É aí que entra o TSclient, que permite especificar as opções através de uma interface muito mais amigável. Ele está disponível em várias distribuições; nas derivadas do Debian, você pode instalá-lo via apt-get. A página oficial é a http://gnomepro.com/tsclient/.
Outra opção é criar ícones nos desktops dos usuários. O ícone pode disparar um comando com o rdesktop cuidadosamente personalizado, de forma a já abrir a janela de conexão com a resolução desejada e já especificando o login usado e os parâmetros necessários para compartilhar a impressora e as pastas desejadas, de forma que o usuário tenha apenas o trabalho de clicar.
No KDE, clique com o botão direito sobre o desktop e use a opção "Criar Novo > Link para Aplicativo". O comando a executar vai no campo Aplicativo > Comando". Um exemplo de comando a usar seria: "rdesktop -g 1024x768 -u gdh 192.168.0.1":
TSclient (à esquerda) e propriedades do ícone de atalho com o comando para se conectar ao servidor diretamente
Comentários