sábado, março 01, 2008

FreeNX para CentOS-4 i386

Servidor NX usando FreeNX para CentOS -4 i386

O FreeNX é a implementação livre do NX Server da NoMachine. Ele é utilizado para permitir acesso remoto a terminais gráficos, similar aos protocolos VNC e RDP (utilizado pelo Windows Terminal Server), porém através de uma metodologia mais segura e rápida. A conexão é estabelecida através do protocolo SSH, o que garante a autenticação encriptada. O tráfego de dados pode ou não ser encriptado através do SSL. Além disso, todas as informações são transmitidas compactadas pela ZLIB. Por fim, o NX server é totalmente integrado ao X, já que é diretamente linkado às suas bibliotecas. Tudo isso o torna extremamente mais seguro e leve do que os protocolos concorrentes.
O FreeNX Server só funciona em plataformas Linux, já os clientes podem ser utilizados em qualquer outro sistema operacional. Os diversos clientes podem ser baixados na área específica do site da NoMachine.

Configuração do SSH
Precisamos configurar e ativar o servidor do SSH (como root):
1. O padrão é permitir que qualquer usuário (menos o root) possam entrar na máquina através desse serviço. Se isso não for desejado, precisamos editar o arquivo /etc/ssh/sshd_config, e adicionar o parâmetro AllowUsers nx ao final do arquivo. Com isso, apenas o usuário do servidor do FreeNX poderá conectar-se através do SSH.
2. Caso você optou por restringir os usuários que terão acesso via SSH, você precisa incluir o usuário que será autenticado pelo NX, ou seja, o seu usuário local. Isso ocorre pois o NX server vai usar o SSH para autenticar a sua sessão. Para cada usuário que deseja-se autorizar, inclua o nome ao final da lista.
3. Para iniciá-lo pela primeira vez, o comando é service sshd start.
4. Para que ele seja inicializado sempre que ligarmos a máquina, o comando é chkconfig sshd on.

Instalando NX / FreeNX no servidor
Para instalar o NX / FreeNX server, digite o comando no servidor:
yum install nx freenx


Agora, duas dicas importantes que não estão documentadas
a) Confirme as permissões do arquivo de chaves. Execute:
chmod 644 /var/lib/nxserver/home/.ssh/authorized_keys2

b) Defina uma senha para o usuário "nx". Não se preocupe em lembrar dela depois, já que isso só será necessário para que o SSH não implique com o fato de que o usuário "nx" é criado bloqueado e sem senha, e isso não é permitido. Se desbloquearmos o usuário, e deixarmos sem senha, teremos um risco de segurança considerável.

Instalaçao do Cliente
Na máquina de onde vamos nos conectar ao servidor com FreeNX, precisamos instalar o pacote cliente. Infelizmente ainda não temos um pacote no repositório do contrib, mas no próprio site da NoMachine existe um RPM perfeitamente compatível, ele pode ser baixado clicando aqui. Após copiado, basta instalá-lo utilizando o comando rpm -ivh .
Após isso, precisamo também copiar do servidor o arquivo /var/lib/nxserver/home/.ssh/client.id_dsa.key para o cliente como /usr/NX/share/client.id_dsa.key. Não é possível detalhar o procedimento de cópia do arquivo neste tutorial, já que podem existir diversos cenários de comunicação entre essas duas máquinas. Então alguns podem copiar via disquete, e-mail, scp, ftp, http, ou qualquer outro método que bem entender. O importante é que o arquivo esteja no lugar certo, e com as permissões certas. Para isso, após copiado, executamos no cliente:
chmod 644 /usr/NX/share/client.id_dsa.key
O binário do cliente NX fica em /usr/NX/bin/nxclient. Para facilitar o acesso a ele, você pode criar um link simbólico no /usr/bin, ou um atalho no seu desktop. Fique à vontade para escolher.

Configuração do Cliente
Vamos agora executar o cliente do NX, e configurá-lo para acessar o nosso servidor.

A seguir informamos o nome do perfil de conexão, o endereço remoto da máquina (nome ou IP) e a porta do SSH (normalmente 22). O tipo de conexão vai ajudar o NX a determinar itens como nível de compressão, quantidade de cores, etc. No exemplo, a estação está conectada em um ADSL de 256kbps.

O padrão é o NX server fazer uma conexão Unix, ou seja, estar entrando em uma máquina que acessa o ambiente gráfico pelo NX proxy (é possível também utilizá-lo para conexões VNC ou RDP). Selecionamos também o tipo de sessão remota, que pode ser KDE, Gnome ou Custom. Isso irá indicar qual gerenciador de janelas deverá ser chamado no caso de uma conexão bem sucedida. No exemplo foi selecionada a resolução de 800x600 pois a estação de testes roda a 1024x768 e não havia interesse em ocupar a tela inteira (padrão).
Um detalhe importante: a opção de habilitar o SSL no tráfego pode ser utlizada para encriptar os dados da sessão. O SSH só é utilizado para autenticar, e depois disso é aberta uma nova porta por onde passam os dados. Essa conexão normalmente não é encriptada, mas podemos aqui informar o contrário.

Para finalizar, podemos criar um ícone na área de trabalho, abrir a janela de configurações avançadas, ou simplesmente finalizar o processo e iniciar nossa conexão.

Conectando – se ao Servidor
Concluída a configuração, basta inserirmos o usuário e senha de uma conta existente no servidor remoto.

Iniciamos a conexão clicando no botão "Login".

Selecione a Aba Advanced . É recomendavel que a opção Enable SSL Encryption of All Traffic esteja selecionada.

Depois de uma negociação de senhas e parâmetros de conexão, nos deparamos com a tela que indica que conectamos sem problemas.

Após alguns segundos, e finalmente temos acesso total ao nosso sistema remoto.