Configuração XDMCP para Acesso Remoto ao Desktop Linux

Este artigo aborda a configuração do XDMCP (X Display Manager Control Protocol) para acesso remoto ao ambiente gráfico Linux. Além disso, apresenta uma breve comparação com VNC (Virtual Network Computing).

Representação visual do concetio:

O X Window System possui uma arquitetura cliente-servidor peculiar onde o termo "servidor" possui significado diferente do tradicional. Conforme documentação do wikipedia:

Um gerenciador de exibição pode ser executado no mesmo computador onde o usuário está sentado ou em um remoto. No primeiro caso, o gerenciador de exibição inicia um ou mais servidores X, exibindo a tela de login no início e (opcionalmente) sempre que o usuário faz logout. No segundo caso, o gerenciador de exibição funciona de acordo com o protocolo XDMCP.

O protocolo XDMCP estabelece que o servidor X inicia autonomamente e conecta-se ao gerenciador de exibição. No paradigma do X Window System, o servidor executa no computador que fornece os dispositivos de exibição e entrada. Um servidor pode conectar-se, usando o protocolo XDMCP, a um gerenciador de exibição executando em outro computador, solicitando-o para iniciar a sessão. Neste caso, o servidor X atua como um cliente telnet gráfico enquanto o gerenciador de exibição atua como um servidor telnet: os usuários iniciam programas no computador que executa o gerenciador de exibição, enquanto sua entrada e saída ocorrem no computador onde o servidor (e o usuário) está localizado.

O protocolo XDMCP foi introduzido no X11R4 para resolver problemas existentes na implementação do X11R3.

O XDM (X Window Display Manager) foi criado originalmente para suportar terminais X, que nos anos 90 ofereciam uma alternativa mais econômica às estações de trabalho Unix:

XDM (X Window Display Manager) é o gerenciador de exibição padrão para o X Window System. Foi introduzido com o X11 Release 3 em outubro de 1988, para suportar os terminais X autônomos que estavam surgindo no mercado. Foi escrito por Keith Packard.

Com o tempo, os terminais X foram substituídos por clientes leves (Thin Clients), e o XDM foi gradualmente abandonado em favor de gerenciadores de exibição mais modernos.

Configuração no CentOS 5.5 x86_64

No CentOS 5.5 e versões superiores, o XDM não é mais suportado. O GDM (Gnome Display Manager) tornou-se o gerenciador padrão. A configuração pode ser realizada através da ferramenta gráfica gdmsetup ou editando diretamente o arquivo de configuração.

Executando a configuração gráfica:

$ sudo gdmsetup

Na interface gráfica, é possível ajustar parâmetros como "Maximum remote sessions" para valores maiores (como 30 ou 60) caso haja muitos clientes remotos.同样可以修改 "Maximum pending request"。

Os parâmetros de configuração também podem ser editados diretamente no arquivo /etc/gdm/custom.conf. As configurações mais importantes são:

[security]
DisallowTCP=false

[xdmcp]
Enable=true
MaxPending=30
MaxWait=20
MaxSessions=60

Após a configuração, é necessário reiniciar o X Window System:

$ su -
$ init 3
$ init 5

Cliente X

Para conectar-se a um servidor Linux remoto via XDMCP, existem diversas opções. No Windows, pode-se utilizar XManager, Xming ou Cygwin X. No Linux, o Xnest pode ser utilizado.

Exemplo de conexão usando Xnest no Linux:

Xnest :10 -query servidor_remoto

Neste comando, ":10" especifica o número do display (deve ser único para evitar conflitos).

Observações sobre Firewall

Recomenda-se desativar o firewall em servidores de desenvolvimento ou ambiente interno, pois a configuração de múltiplas portas pode ser trabalhosa. Para ambientes de produção, é necessário configurar adequadamente o netfilter/iptables.

Comparação com VNC

VNC (Virtual Network Computing) é baseado no protocolo RFB (Remote FrameBuffer):

Embora o RFB tenha iniciado como um protocolo relativamente simples, foi aprimorado com recursos adicionais (como transferência de arquivos) e técnicas mais sofisticadas de compressão e segurança.

A diferença fundamental entre VNC e XDMCP está na localização do servidor X: no VNC, o servidor X executa no lado do servidor, enquanto o cliente remoto apenas exibe uma cópia do framebuffer. Por isso, o VNC é considerado um protocolo de cliente leve (Thin Client).

Uma limitação do VNC é que a autenticação RFB é baseada apenas em senhas sem nomes de usuário. Assim, cada usuário deve iniciar uma sessão独立 de servidor VNC e conectar-se especificando a porta correta.

Documentação adicional sobre VNC está disponível nas wikis do CentOS e Fedora. Há também artigos que abordam a combinação de VNC com XDMCP para ambientes multiusuário.

Tags: Linux xdmcp X11 remote-access gdm

Publicado em 8-18 03:44