15.2. Configuração avançada do FreeNX

As seções a seguir apresentam alguns recursos avançados usados principalmente em cenários mais complexos do NX.

15.2.1. Configurando a autenticação SSH com chaves do cliente

A autenticação configurada na Seção 15.1, “Noções básicas do NX” utiliza apenas credenciais de senha e nome de usuário. Para obter uma autenticação mais segura, o NX pode ser configurado para gerar um par de chaves SSH. A chave do cliente é, então, copiada da máquina servidor para qualquer cliente que possa se conectar ao servidor NX. Os clientes que não tiverem essa chave não poderão se autenticar no servidor NX. Esse recurso só tem suporte para a combinação de servidor FreeNX e cliente knx.

Para configurar o servidor NX para que use esse método de autenticação e gere o par de chaves apropriada, proceda da seguinte maneira:

  1. Efetue login como Root na máquina servidor.

  2. Abra o arquivo de configuração do servidor /etc/nxserver/node.conf e verifique se ENABLE_SSH_AUTHENTICATION está definido como 1 (valor padrão).

  3. Instale o servidor com o seguinte comando:

    nxsetup --install --clean --purge
  4. Ajuste as permissões de acesso para /var/lib/nxserver/home/.ssh/authorized_keys2:

    chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2
    
  5. Efetue logout.

Para configurar o knx para usar essa chave, proceda da seguinte maneira:

  1. Na máquina servidor, efetue login como Root.

  2. Copie o arquivo de chave para o local na máquina cliente necessário ao knx; substitua cliente pelo endereço do cliente.

     
    scp /var/lib/nxserver/home/.ssh/client.id_dsa.key cliente:/usr/share/knx/ 
  3. Efetue login na máquina cliente como Root.

  4. Ajuste as permissões de acesso da seguinte maneira:

    chmod 644 /usr/share/knx/client.id_dsa.key
    
  5. Efetue logout.

15.2.2. Configurando a autenticação PAM

Por padrão, o FreeNX permite que qualquer usuário abra uma sessão do NX, desde que ele esteja presente no banco de dados de usuários do seu servidor (localmente ou por meio de LDAP, NIS, entre outros). Esse comportamento é alternado pela variável ENABLE_PAM_AUTHENTICATION em /usr/bin/nxserver na máquina servidor. O valor padrão aqui é 1. Configurar com o valor 0 desabilita a autenticação do usuário mediada por PAM (PAM_AUTH) para o FreeNX.

Se ENABLE_PAM_AUTHENTICATION for definido como 0, será preciso adicionar usuários e senhas manualmente. Para adicionar usuários locais do NX ao servidor, proceda da seguinte maneira:

  1. Efetue login na máquina servidor como Root.

  2. Certifique-se de que os usuários a serem adicionados existem no banco de dados de usuários locais do sistema. Para isso, verifique o conteúdo de /etc/passwd ou use o módulo de gerenciamento de usuários do YaST.

  3. Inclua o nome de cada usuário adicionado com o comando nxserver --adduser. Em seguida, adicione a senha do usuário com nxserver --passwd.

  4. Reinicie o servidor com nxserver --restart e efetue logout.

15.2.3. Usando arquivos de configuração no sistema todo e específicos do usuário

O comportamento do servidor FreeNX é controlado por meio de /etc/node.conf. Você pode executar uma configuração global do servidor NX ou executar o servidor com configurações específicas do usuário. Isso é importante quando você tem diversos usuários com o NX em execução em uma máquina com requisitos distintos.

No exemplo a seguir, suponha que o usuário joe queira que o NX seja iniciado automaticamente com um certo aplicativo quando ele abrir uma sessão do NX. Para habilitar esse comportamento para apenas esse usuário, proceda da seguinte maneira:

  1. Efetue login como Root.

  2. Digite o diretório /etc/nxserver:

    cd /etc/nxserver
  3. Grave uma cópia do arquivo de configuração do servidor NX (node.conf) em joe.node.conf no mesmo diretório.

  4. Edite os parâmetros apropriados (NODE_AUTOSTART e ENABLE_AUTORECONNECT) em joe.node.conf. Para obter detalhes sobre esses recursos, consulte a Seção 15.2.5, “Configurando tarefas de auto-início e exportando configurações” e a Seção 15.2.4, “Suspendendo e reiniciando sessões do NX”.

  5. Reinstale o servidor NX para ativar a nova configuração:

    nxsetup --install --clean --purge --setup-nomachine-key

    A configuração específica do usuário substitui a configuração global.

  6. Efetue logout.

15.2.4. Suspendendo e reiniciando sessões do NX

Como nas sessões em computadores móveis, é possível configurar o NX para suspender e reiniciar sessões do usuário. Uma sessão suspensa é reaberta no mesmo estado em que estava ao ser fechada.

Para configurar a suspensão e o reinício de sessões do NX, proceda da seguinte maneira:

  1. Efetue login como Root.

  2. Abra o arquivo de configuração do servidor, /etc/nxserver/node.conf, e edite-o assim:

    ENABLE_PASSDB_AUTHENTICATION="0"
    ENABLE_USER_DB="0"
    ENABLE_AUTORECONNECT="1"
    
  3. Grave o arquivo de configuração, saia e reinicie o servidor com nxserver --restart.

  4. Efetue logout.

Para suspender uma sessão ao sair, clique no X no canto superior direito da janela do NX e selecione Suspender para suspender a sessão e sair do cliente. Na reconexão, você deverá informar se deseja reiniciar a sessão antiga ou iniciar uma nova.

15.2.5. Configurando tarefas de auto-início e exportando configurações

O FreeNX oferece a função de auto-início que lhe permite iniciar certas tarefas quando uma sessão do NX é iniciada ou reiniciada, desde que o aplicativo subjacente suporte as propriedades start e resume. Por exemplo, você pode limpar a área de trabalho automaticamente ou executar outras tarefas de auto-início quando abrir o FreeNX. Esse recurso é especialmente útil quando você reconecta uma sessão, mesmo em outro cliente do NX (no qual não é possível usar os mecanismos padrão do KDE ou GNOME).

Para configurar recursos de auto-início, proceda da seguinte maneira:

  1. Efetue login como Root na máquina servidor.

  2. Abra o arquivo de configuração do servidor /etc/nxserver/node.conf e edite a variável NODE_AUTOSTART da maneira descrita abaixo, onde meuprograma deve ser substituído pelo programa a ser executado no início ou reinício de uma sessão do NX:

    NODE_AUTOSTART=meuprograma 
         
  3. Grave e saia do arquivo de configuração.

  4. Reinicie o servidor com o comando nxserver --restart e efetue logout.

    O programa especificado será iniciado toda vez que uma sessão for iniciada ou reiniciada.

Você também pode exportar as variáveis NX_USERIP e NX_SESSIONID para que possam ser acessadas no ambiente do usuário. Com isso, é possível, por exemplo, colocar um ícone na área de trabalho com o conteúdo genérico e acessar um servidor Samba em execução no thin client do usuário. Para que o conteúdo de um disquete na unidade de disquete do thin client fique à disposição do usuário, proceda da seguinte maneira:

  1. Habilite a exportação das variáveis NX_USERIP e NX_SESSIONID no servidor:

    1. Efetue login como Root no servidor.

    2. Abra o /etc/nxserver/node.conf de configuração do servidor e defina as seguintes variáveis:

      EXPORT_USERIP="1"
      EXPORT_SESSIONID="1"
      
    3. Grave o arquivo de configuração do servidor, saia e reinicie o servidor com o comando nxserver --restart.

    4. Efetue logout.

  2. No cliente, abra uma sessão, exporte a unidade de disquete através de SMB e crie um ícone na área de trabalho:

    1. Use o seu gerenciador de arquivos (Nautilus ou Konqueror) para exportar o conteúdo da unidade de disquete com o Samba.

    2. Crie um arquivo floppy.desktop no diretório Desktop e inclua a seguinte linha:

      Exec=smb://$NX_USERIP/floppy

      O servidor exporta o endereço IP do thin client, permitindo assim que você tenha acesso à unidade de disquete do thin client com o ícone de disquete na sessão do NX.

15.2.6. Criando uma cadeia de servidores NX

Uma cadeia de servidores NX permite que você atravesse firewalls e entenda a máscara de IP. Um servidor de “gateway” externo pode ser usado para encaminhar conexões de entrada para um servidor interno, oculto por trás de um firewall (máscara).

Para configurar uma cadeia de servidores NX, proceda da seguinte maneira:

  1. Configure o servidor interno como descrito na Seção 15.2.1, “Configurando a autenticação SSH com chaves do cliente” e distribua a chave privada do servidor (client.id_dsa.key) para /usr/NX/share/ no gateway.

  2. No servidor de gateway, proceda da seguinte maneira:

    1. Efetue login como Root.

    2. Defina as seguintes variáveis em /etc/nxserver/node.conf e substitua meuhostinterno pelo endereço IP do servidor NX interno:

       
      ENABLE_SERVER_FORWARD="1" 
      SERVER_FORWARD_HOST="meuhostinterno" SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"
    3. Reinicie o servidor externo para aplicar a configuração alterada com o comando nxserver --restart e efetue logout.

      Toda conexão de entrada será encaminhada ao servidor interno.

15.2.7. Instalando e executando o FreeNX e o NoMachine no mesmo servidor

É possível instalar e executar o FreeNX e o servidor comercial NX NoMachine na mesma máquina sem interferência. Para fazer essa implementação no FreeNX, encaminhe a conexão para o NoMachine instalado na mesma máquina.

Para habilitar esse recurso, proceda da seguinte maneira:

  1. Efetue login como Root na máquina servidor.

  2. Abra o arquivo de configuração do servidor para o FreeNX em /etc/nxserver/node.conf e defina a seguinte variável:

    ENABLE_NOMACHINE_FORWARD="1"
  3. Grave esse arquivo e reinicie o servidor FreeNX com o comando nserver --restart.

  4. Efetue logout.

Para conectar-se ao servidor NoMachine, use as credenciais padrão de nome de usuário e senha. Para conectar-se ao servidor FreeNX, use freenx. como prefixo do nome de usuário normal (por exemplo, freenx.joedoe) e use a senha normal.