Acesso remoto utilizando FreeNX

As maiores reclamações de usuários remotos que utilizam o Linux e que precisam usar a parte gráfica é a demora para abrir aplicativos e configuração não intuitiva. O FreeNX é uma ferramenta que permite acessos através de um cliente gráfico, utilizando S.O. Windows ou Linux com uma velocidade surpreendente. Indicado para quem precisa dar manutenção a servidores ou que trabalha como homeOffice.

[ Hits: 81.456 ]

Por: Gilberto Russo em 11/08/2006


Instalação do NOMACHINE Client



Aplicativo em Python


Foi criado um aplicativo em Python para que seja possível a execução do nomachine(client) dentro de um pendrive. Portanto o aplicativo teria que copiar alguns arquivos de configuração do pendrive para dentro do home do usuário que esteja logado no momento.

Para a melhor utilização desse aplicativo foi transformado o código em python "py" para um arquivo binário "exe". Para que isso fosse possível foi utilizado um programa chamado py2exe. Abaixo o código do aplicativo:

import os, sys
from time import sleep
from shutil import copytree
from shutil import rmtree

def deleta_tudo(diretorio):
    try:
        os.rmdir(diretorio)
    except:
        pass
    for root, dirs, files in os.walk(diretorio, topdown=False):
            for file in files:
                try:
                    os.remove(os.path.abspath(os.path.join(root,file)))
                except:
                    pass
            for dir in dirs:
                try:
                    os.rmdir(os.path.abspath(os.path.join(root,dir)))
                except:
                    pass
    try:
        os.rmdir(diretorio)
    except:
        pass


def deleta_dir(ficheiro):
    while os.path.exists(ficheiro):
        
        rmtree(ficheiro)
        break
    sleep(0.5)

dir1 = (os.popen('set userprofile'))
dir1 = (dir1.read())
dir3 = dir1.split ('=')[1][:-1]
SPATH = dir3+'.nx'



while 1:
    if os.path.exists(SPATH):
        deleta_tudo(SPATH)
    elif not os.path.exists(SPATH):
        break

sleep(0.5)
copytree ('nx',SPATH)

status = os.system("%s " % ('nxclient'))
print status
if status != 0:
    print "%s exited funny: %s" % ("nxclient.exe", status)
    raise SystemExit

while 1:
    if os.path.exists(SPATH):
        deleta_tudo(SPATH)
    elif not os.path.exists(SPATH):
        break

Criando arquivo freenx.bat


Para que os arquivos de instalação do NoMachine e os arquivos do aplicativo em python não ficassem espalhados na raiz do pendrive, foi criado um pequeno script em "bat" para fazer a chamada do binário do python, e então abrir o binário do nomachine.

@echo off
cd nxclient
start freenx.exe

Cliente NoMachine (necessariamente versão 1.5)


Vamos agora executar o cliente do NX e configurá-lo para acessar o nosso servidor. Nesse caso a configuração deverá ser feita dentro de um pendrive.

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, mas por segurança alteramos para a porta 37775). 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. Utilizaremos o Custom para determinar a interface gráfica Fluxbox. Isso 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 utilizada para encriptar os dados da sessão e com essa opção o tráfego será somente pela porta que foi determinada, no nosso caso 37775. O SSH só é utilizado para autenticar, depois disso é aberta uma nova porta por onde passam os dados. Essa conexão normalmente não é encriptada.

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.

Página anterior     Próxima página

Páginas do artigo
   1. Apresentação
   2. Configuração do FreeNX
   3. Instalação do NOMACHINE Client
   4. Acessando o servidor e agradecimentos
Outros artigos deste autor

Instalando o Squid + SquidGuard

Osiris - Integridade do sistema de arquivos

Monitoração de Hosts e Serviços com o NAGIOS

Firewalls redundantes utilizando VRRP

Proxy reverso e balanceamento de carga utilizando o Pound

Leitura recomendada

Aprendendo o básico do Emacs

OneOrZero Helpdesk

Consumo de link com Cacti

Instalando pacotes no Ubuntu e distros Debian-like

Apresentando a programação orientada a objetos

  
Comentários
[1] Comentário enviado por gilps em 15/08/2006 - 16:22h

Olá!
Otimo artigo!
No meu faz uma coisa estranha:
aparece "RSA key finguerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
are you sure you want to continue connecting? Yes or No"
clico em sim e aparece "connection completed" e depois "session startup failed"
Os detales de log são estes:
================================
NX> 203 NXSSH running with pid: 5067
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 192.168.7.121 on port: 37775
NX> 211 The authenticity of host '192.168.7.121 (192.168.7.121)' can't be established.
RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX.
Are you sure you want to continue connecting (yes/no)?
Warning: Permanently added '192.168.7.121' (RSA) to the list of known hosts.
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
HELLO NXSERVER - Version 1.4.0-04 OS (GPL)
NX> 105 hello NXCLIENT - Version 1.4.0
NX> 134 Accepted protocol: 1.4.0
NX> 105 SET SHELL_MODE SHELL
NX> 105 SET AUTH_MODE PASSWORD
NX> 105 login
NX> 101 User: gil
NX> 102 Password:
NX> 103 Welcome to: beto user: gil
NX> 105 listsession --user="gil" --status="suspended,running" --geometry="1024x768x24+render" --type="unix-kde"
NX> 127 Sessions list of user 'gil' for reconnect:

Display Type Session ID Options Depth Screen Status Session Name
------- ---------------- -------------------------------- -------- ----- -------------- ----------- ------------------------------


NX> 148 Server capacity: not reached for user: gil
NX> 105 startsession --link="adsl" --backingstore="1" --nodelay="1" --encryption="1" --cache="8M" --images="32M" --media="0" --session="teste" --type="unix-kde" --cookie="fe00f41384ac43c6a19affcc2d7ff594" --geometry="800x600+112+65" --kbtype="pc102/br" --screeninfo="800x600x24+render"

NX> 1000 NXNODE - Version 1.4.0-04 OS (GPL)
NX> 700 Session id: beto-1000-53227E96CAEC5585B8966A124B0AF408
NX> 705 Session display: 1000
NX> 703 Session type: unix-kde
NX> 701 Proxy cookie: f5502a0c36db1c1fb2a8415c11b77491
NX> 702 Proxy IP: 127.0.0.1
NX> 706 Agent cookie: fe00f41384ac43c6a19affcc2d7ff594
NX> 704 Session cache: unix-kde
NX> 707 SSL tunneling: 1
NX> 105 /usr/lib/nx/nxserver: line 1035: 5230 Terminado ( sleep 10; exit 1 )
NX> 504 Session startup failed.
NX> 1004 Error: nxagent failed to start with: Unrecognized option: 1
NX> 1001 Bye.
Killed by signal 15.
==================================

[2] Comentário enviado por juniorsemacento em 24/08/2006 - 14:40h

Grande Gilberto Russo...
E ae cara.. tudo bom?

Belo artigo hein?
Vi hoje na LinuxSecurity e vim aqui ver quando li que era do Gilberto Russo =D

Legal o artigo.. vou testar aqui na empresa.


Abração cara

Junior
Floripa

[3] Comentário enviado por kusanagui em 25/08/2006 - 10:25h

intaum Amigo Peguei e instalei aki na minha empressa soh q da uns erros aki toh meio perdido se der pra da uma forca
vo manda o log q exibe.

NX> 703 Session type: windows
NX> 701 Proxy cookie: 0a07d6e0130c6766008888a8c69c9e49
NX> 702 Proxy IP: 192.168.1.33
NX> 706 Agent cookie: 63a9f0ea7bb98050796b649e85481845
NX> 704 Session cache: windows
NX> 707 SSL tunneling: 0
NX> 1004 Error: Session did not start.
NX> 504 Session startup failed.
NX> 999 Bye
NX> 1001 Bye.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts