Ativando o compartilhamento

Naturalmente, o suporte a XDMCP, que permite às outras máquinas da rede rodar aplicativos instalados no servidor, vem desativado por padrão. O XDMCP não utiliza nenhum tipo de encriptação ou compressão, simplesmente transmite os dados da forma mais simples e rápida possível. Você se loga no servidor, carrega o KDE ou outra interface da sua preferência e roda todos os aplicativos instalados no servidor, de uma forma completamente transparente e um desempenho muito bom, mesmo em uma rede de 10 megabits.

Por um lado isso é bom, pois o overhead é muito pequeno, mas por outro lado é ruim, pois não existe muita segurança. O XDMCP deve ser usado apenas dentro da rede local; use sempre um firewall para bloquear conexões provenientes da Internet.

Para configurar o servidor para aceitar as conexões, é preciso alterar dois arquivos. O primeiro faz com que o X aceite conexões remotas e o segundo configura o gerenciador de login (KDM ou GDM) para escutar as conexões e fornecer a tela de login aos clientes.

Nas distribuições que utilizam o KDM (como o Kubuntu e o Mandriva), procure pelos arquivos kdmrc e Xaccess (que sempre ficam na mesma pasta). Em algumas distribuições (como no Mandriva) eles ficam na pasta “/usr/share/config/kdm/” e, em outras (como no Kurumin e outras distribuições derivadas do Debian), ficam na pasta “/etc/kde3/kdm/“. Você pode usar o comando “locate” para encontrá-los.

Dentro do arquivo “Xaccess“, descomente a linha:

# * #any host can get a login window

Basta retirar a tralha (#), fazendo com que o asterisco seja o primeiro caractere. Esta linha faz com que o servidor passe a aceitar conexões de todos os hosts da rede. Caso você prefira limitar o acesso a apenas alguns endereços (mais seguro), basta substituir o asterisco pelos endereços desejados.

Um pouco mais abaixo, no mesmo arquivo, descomente também a linha abaixo, novamente retirando a tralha:

# * CHOOSER BROADCAST #any indirect host can get a chooser

5fe87de

Esta linha é opcional. O Chooser Broadcast permite que os clientes contatem o servidor para obter uma lista de todos os servidores XDM disponíveis na rede (você pode ter mais de um, como veremos a seguir). Isso é feito usando o comando “X -indirect“.

Em seguida, edite também o arquivo kdmrc. Quase no final do arquivo você encontrará a linha:

[Xdmcp]
Enable=false

Basta alterá-la para:

[Xdmcp]
Enable=true

5b90f12e

Nas distribuições que utilizam o GDM (o gerenciador de login do Gnome), como o Ubuntu, Fedora, CentOS e diversas outras, a configuração é mais simples, pois o XDMCP pode ser ativado através do configurador da tela de login, o gdmsetup.

Acesse-o executando o comando como root, ou através do “Sistema > Adminstração > Tela de Login” (Sistema > Administração > Janela de início de sessão” no Ubuntu). Acesse a aba “Remoto” e, dentro da opção “Estilo” mude a opção de “Início de sessão remota desabilitada” para “Simples com o navegador de faces”. Esta simples alteração faz com que o XDMCP seja ativado, com o uso da tela de login simplificada, que pode ser configurada a seu gosto:

m5809240a

53882505

Acessando a opção “Configurar XDMCP” você tem acesso a um segundo menu de configuração, que permite definir o número máximo de clientes simultâneos (opção “Máximo de sessões remotas”), que pode ser ajustado de acordo com o número de clientes na rede, ou de acordo com os recursos de hardware do servidor.

Para que as alterações entrem em vigor (tanto no KDM quanto no GDM), é necessário reiniciar o gerenciador de login. Para isso, mude para um terminal de texto (Ctrl+Alt+F2) e reinicie o serviço responsável pelo gerenciador de login, como em:

# /etc/init.d/kdm restart

(ao usar o KDM)

# /etc/init.d/gdm restart


ou

# service dm restart

(no Mandriva)

A partir daí, os terminais já poderão abrir a tela de login do servidor através do comando “X -query IP_do_servidor“, como em:

# X -query 192.168.1.1

O comando deve ser dado com o terminal em modo texto. Se o cliente já estiver com uma sessão do X aberta, ou você desejar abrir mais de uma tela do servidor ao mesmo tempo, basta adicionar o parâmetro “:2”, como em:

# X :2 -query 192.168.1.1

O comando abrirá um segundo terminal gráfico, independente do primeiro, exibindo a tela de login do servidor. Você pode alternar entre os dois usando as teclas Ctrl+Alt+F7 e Ctrl+Alt+F8. Para abrir mais terminais, basta substituir o “:2” por um número de 3 em diante:

44ba10d7

Para automatizar o processo, fazendo com que o terminal abra automaticamente a tela de login do servidor no final do boot, sem passar pelo login local e sem a necessidade de digitar este comando a cada boot, edite o arquivo “/etc/inittab” (no terminal, como root) e altere a linha “x:5:respawn:/etc/X11/prefdm -nodaemon“, que estará no final do arquivo para “x:5:respawn:/etc/X11/X -query IP_do_servidor”, como em:

x:5:respawn:/etc/X11/X -query 192.168.1.1

Isso faz com que o terminal aborte o carregamento do ambiente gráfico local e abra a tela de login do servidor via XDMCP. Este é um velho truque para aproveitar micros antigos, transformando-os em terminais burros. Eu cheguei a usar um Thinkpad 560 como segundo micro durante um bom tempo entre 1998 e 2000 (época em que os notebooks ainda eram muito caros), graças ao XDMCP. Ele era um simples Pentium 100 com 16 MB de RAM e por isso era muito limitado para rodar programas localmente, mas funcionava muito bem como terminal.

Continuando, uma segunda opção é utilizar o comando “X -broadcast” em substituição ao “X -query”. A diferença é que enquanto o X -query exige que você especifique o endereço IP do servidor, o X -broadcast é automático, ele se encarrega de emitir um pacote de broadcast na rede e contatar o primeiro servidor X que responder ao chamado. O “X -broadcast” é sempre usado sem argumentos, como em:

# X :2 -broadcast

Se você tiver mais de um servidor XDM na rede, uma terceira opção é usar o comando: “X -indirect IP_do_servidor“. Nesse caso, você se conectará a um servidor X configurado, mas, ao invés de obter a tela de login automaticamente, terá um menu com todos os servidores X disponíveis na rede e poderá escolher qual usar a cada sessão. A partir daí o cliente escolhe a qual servidor deseja se conectar a cada boot:

2f4e0d87

Para que o servidor forneça esta lista é preciso que a linha “* CHOOSER BROADCAST” do arquivo Xaccess esteja descomentada (no KDM), ou que a opção “Honrar pedidos indiretos” esteja ativada no gdmsetup (ao usar o GDM).

Um pequeno truque não documentado é substituir o endereço do servidor pelo endereço da rede, como em “X -indirect 192.168.0.0“. Isso faz com que o pedido de listagem vá para todos os servidores XDM da rede. A vantagem é que o cliente não fica preso a um servidor específico; o cliente sempre conseguirá obter a lista, mesmo que apenas um dos servidores da rede esteja ligado.

A principal vantagem de utilizar o XDMCP é que não é preciso instalar nenhum software adicional no servidor nem nas estações, apenas fazer a configuração necessária. Uma vez conectadas no servidor, as estações utilizam automaticamente a conexão com a web, impressora, gravador de DVD, scanner, etc. instalados nele. Não é necessário configurar os compartilhamentos de impressora e conexão, já que, na verdade, tudo é acessado “localmente” dentro do servidor. A única diferença é que neste caso as imagem são enviadas às estações, ao invés de serem exibidas no monitor do servidor.

O mesmo acontece com relação aos arquivos. Tudo que é aberto e salvo não sai do HD do servidor. Você pode criar um login de usuário para cada um que for acessar o servidor, assim cada um terá onde armazenar seus arquivos e suas configurações e você precisará fazer backup de um único local. Um único servidor, com um processador razoável, rede de 100 megabits e 1 GB de RAM, pode facilmente atender a 20 estações simultaneamente.

Uma última peculiaridade do X é a forma estranha como é definido quem é o cliente e quem é o servidor. O servidor X cuida do acesso ao hardware, da criação de janelas, leitura do teclado, etc. Ele envia estes dados aos programas (o que inclui o gerenciador de janelas), que são chamados de clientes X e estes devolvem as imagens e outros dados que serão mostrados na tela.

Enquanto você está trabalhando localmente, isso parece bastante lógico. Afinal, o servidor X é o intermediário entre o hardware e os programas, que são os clientes. No entanto, a coisa começa a ficar um pouco mais estranha quando começamos a trabalhar em rede.

Se você usa um 486 como um “cliente” que roda aplicativos de um “servidor” remoto, chamamos o 486 de cliente e o servidor de servidor para que fique mais claro a função de ambos. Afinal, o 486 está servindo quase que como um mero terminal burro, que se limita a mostrar imagens no monitor.

Contudo, tecnicamente falando, o servidor X está rodando no 486, já que é ele quem está com o monitor, teclado, etc. O “servidor de rede”, nesse caso, entra apenas com as imagens que serão exibidas por este servidor X (no 486), ou seja, faz o papel de cliente. Este é um ponto confuso, onde é preciso prestar atenção para não trocar as bolas.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X