Muita gente pensa que servidores são máquinas poderosas em salas escondidas e que clientes, são computadores comuns usados por pessoas comuns. Esta característica é equivocada quando se fala do X. O X é um servidor, isto significa que o servidor X é executado no computador que o usuário utiliza.
Clientes X são programas que os usuários executam - xterm, xfontsel, Kmail, Openoffice.org, entre outros. Na maior parte dos casos o servidor X e o cliente X são executados no mesmo computador, então esta terminologia não importa; mas quando você utiliza o X para acesso remoto, deve-se lembrar que o servidor X roda no computador do usuário enquanto o cliente X é executado em um sistema remoto.
Para que esta característica tenha sentido, pense no ponto de vista do programa. Por exemplo, considere um navegador como o Firefox. Este programa acessa paginas armazenadas em um servidor. O servidor web responde as requisições e as abrem no navegador. O navegador abre os arquivos e mostra os arquivos na tela e aceita entradas do usuário, mas isto é provido pelo servidor X. e não pelo servidor web.
Originalmente o
Linux é configurado para que o servidor X aceite apenas requisições do computador local como medida de segurança. No entanto, se quiser executar programas remotamente, basta fazer algumas mudanças. O problema disto é que esta ação pode resultar em brechas de segurança uma vez que uma configuração equivocada pode deixar o servidor X acessível para qualquer usuário.
Implementação
Para este artigo foram utilizadas duas máquinas executando a Debian Lenny ambos com ambiente gráfico instalado e o gerenciador de janelas o Gnome e o login manager GDM.
Não cobrirei aqui a instalação dos aplicativos, uma vez que a instalação padrão da Debian já trás todos eles instalados.
Suponha que na sua rede local você tenha dois computadores. Um computador chamado Zeus que é mais potente que hospeda aplicações importantes, como editores de textos programas, planilhas ou sistema de gestão. o segundo computador chamado Apollo que é muito menos potente, mas tem um monitor adequado teclado e mouse. No entanto você deseja sentir-se no computador Apollo e executar programas no servidor Zeus.
Inicialmente precisamos habilitar este recurso no X login manager (gdm) para permitir encaminhamento da sessão X.
Acesse o arquivo
/etc/gdm/gdm.conf.
A linha:
DisallowTCP=true
Deve ficar:
DisallowTCP=false
Salve e saia do arquivo.
O gdm deve ser reiniciado:
# /etc/init.d/gdm restart
Como em nosso laboratório, utilizaremos o ssh, outra opção deve ser alterada no cliente e servidor ssh para que permita encaminhamento de conexões do X.
No ssh cliente edite o arquivo
/etc/ssh/ssh_config.
Defina a opção:
ForwardX11 yes
No ssh servidor edite o arquivo
/etc/ssh/sshd_config.
Defina a opção:
X11Forwarding Yes
Reinicie o servidor ssh:
# /etc/init.d/sshd restart
Para configurar o servidor e cliente X siga os seguintes passos:
1. Efetue login no computador Apollo e, se não estiver executando o X, execute (startx).
2. Abra um terminal (como o xterm) em Apollo.
3. Digite
xhosts +zeus no terminal do Apollo (este comando informa ao Apollo para permitir em seu servidor X dados originados do computador Zeus.
4. Efetue login em Zeus a partir de Apollo. Use telnet ou ssh, o intuito é poder executar comandos em um Shell de Zeus.
5. Em Zeus, digite export DISPLAY=Apollo:0.0 (assumindo que está utilizando o interpretador de comandos bash). Este comando informa a zeus que use Apolo para exibir os programas X.
6. Instale um aplicativo, por exemplo o Openoffice.org (
apt-get install openoffice.org). No mesmo terminal execute o ooffice. Você deve visualizar o programa aberto na tela de Apollo porém está sendo executado em Zeus. Este processo faz com que os recursos utilizados de CPU sejam do computador Zeus.
7. Para finalizar execute logoff no computador Zeus, e digite
xhosts -zeus em Apollo, para novamente bloquear o acesso X remotamente.
Conclusão
Espero que tenham gostado do texto e que consigam visualizar a real finalidade deste recurso que mostra a flexibilidade e a usabilidade do sistema operacional que mais cresce no mundo.
Viva o Linux!