Guia de tecnologias

Como configurar um servidor de terminal no Linux usando Ubuntu 9.10 e FreeNX

9 min read Administração Atualizado 18 Oct 2025
Servidor terminal com FreeNX no Ubuntu 9.10
Servidor terminal com FreeNX no Ubuntu 9.10

Visão geral

A computação centrada em desktop está deixando espaço para o retorno de arquiteturas com thin clients e estações remotas. Este tutorial mostra como usar o FreeNX para acessar um desktop Ubuntu 9.10 remotamente, mantendo boa qualidade visual e baixo uso de banda. Por padrão, o FreeNX usa SSH, o que cifra o tráfego.

Definições rápidas

  • FreeNX: implementação open source do NX Server da NoMachine.
  • Thin client: dispositivo cliente com pouca CPU/armazenamento que usa recursos de um servidor remoto.
  • SSH: protocolo seguro para acesso remoto (porta padrão 22).

Importante: Ubuntu 9.10 (Karmic Koala) é uma versão antiga; este guia preserva as instruções originais, mas considere atualizar para uma versão suportada em produção.

Por que usar FreeNX

  • Menor uso de banda em relação a VNC tradicional.
  • Boa responsividade e qualidade gráfica.
  • Tráfego cifrado por SSH.
  • Pode reduzir custos de hardware e facilitar a administração.

Quando evita usar FreeNX

  • Se você precisa de suporte oficial para versões modernas do Ubuntu, prefira soluções ativamente mantidas (x2go, RDP com xrdp, NoMachine proprietária).
  • Em ambientes com requisitos muito altos de latência determinística (algumas aplicações gráficas em tempo real), pode ser insuficiente.

TL;DR técnico

  1. Instale Ubuntu 9.10. 2. Instale openssh-server, fail2ban e firehol. 3. Configure IP estático em /etc/network/interfaces. 4. Configure e inicie FireHOL, deixando apenas SSH (22) aberto. 5. Instale FreeNX via PPA. 6. Configure clientes NoMachine com a chave do servidor (se gerada).

1. Sistema operacional

Instale o Ubuntu 9.10 seguindo um guia de instalação padrão (por exemplo, HowToForge — passos básicos de desktop). Os passos 1–3 sugeridos nesse tipo de guia já bastam para iniciar.

Nota: se estiver usando outra distribuição ou versão do Ubuntu, adapte os comandos do gerenciador de pacotes (aptitude/apt) e paths conforme necessário.

2. Pré-requisitos

Abra um terminal: Aplicativos -> Acessórios -> Terminal, e torne-se root:

 sudo su -l

Instale pacotes necessários:

 aptitude update && aptitude install openssh-server fail2ban firehol

Verifique o SSH:

 ssh 127.0.0.1

Você verá o fingerprint RSA e a pergunta se deseja continuar. Anote o fingerprint e pressione Ctrl-C para sair. Isso confirma que o daemon SSH responde.

3. Rede e IP estático

Como servidor remoto, recomendo um IP estático. Você pode usar um IP reservado pelo DHCP (atribuição estática no servidor DHCP) ou configurar diretamente em /etc/network/interfaces.

Verifique as configurações atuais:

 ifconfig eth0
 cat /etc/resolv.conf
 route

Pegue: endereço IP atual, broadcast, máscara, servidores DNS e Gateway. Escolha um IP livre na mesma subrede (fora do pool DHCP) para evitar conflitos.

Edite a configuração de rede:

 nano /etc/network/interfaces

Se encontrar:

 iface eth0 inet dhcp

Altere para:

 iface eth0 inet static

Adicione (substitua pelos seus valores):

     address 192.168.1.253
     netmask 255.255.255.0
     network 192.168.1.0
     broadcast 192.168.1.255
     gateway 192.168.1.1
     dns-nameservers 8.8.8.8 8.8.4.4

Salve (Ctrl-O) e saia (Ctrl-X). Reinicie a rede:

 /etc/init.d/networking restart

Abra o Firefox e confirme acesso à internet antes de prosseguir.

Nota sobre DNS: o tutorial original recomenda os DNS públicos do Google (8.8.8.8, 8.8.4.4). Eles são simples de usar, mas em ambiente corporativo use DNS interno quando necessário.

4. Firewall com FireHOL

Ative o FireHOL editando:

 nano /etc/default/firehol

Mude:

 START_FIREHOL=NO

para:

 START_FIREHOL=YES

Atualize a lista de IPs reservados:

 get-iana

Edite a configuração principal:

 nano /etc/firehol/firehol

No fim do arquivo, adicione a regra mínima para aceitar SSH:

 server ssh accept

Inicie o FireHOL:

 firehol start

Saída esperada:

 Activating new firewall (47 rules): OK

Veja as regras geradas:

 iptables --list

Sugestão de política recomendada (exemplo): bloquear tudo de entrada exceto SSH e permitir todas as conexões de saída. Ajuste conforme sua política de segurança.

5. Proteção contra força bruta com Fail2ban

Fail2ban monitora logs e bloqueia IPs que tentam senhas repetidas. Instale já feito (veja Pré-requisitos). Configuração mínima:

Crie um arquivo local:

 nano /etc/fail2ban/jail.local

Conteúdo de exemplo:

 [sshd]
 enabled = true
 port = ssh
 filter = sshd
 logpath = /var/log/auth.log
 maxretry = 5
 bantime = 3600

Reinicie o fail2ban:

 /etc/init.d/fail2ban restart

Verifique status:

 fail2ban-client status sshd

6. Hardening básico do SSH

Edite o arquivo de configuração do SSH:

 nano /etc/ssh/sshd_config

Sugestões práticas (comente linhas originais e adicione estas):

 PermitRootLogin no
 PasswordAuthentication yes  # idealmente use key-based auth e desative depois
 PermitEmptyPasswords no
 ChallengeResponseAuthentication no
 UsePAM yes
 MaxAuthTries 4
 AllowUsers seu_usuario outro_usuario  # restrinja a lista de usuários que podem logar via SSH

Após alterações:

 /etc/init.d/ssh restart

Recomendação: para produção, migre para autenticação por chave pública e desative PasswordAuthentication.

7. Instalar FreeNX

Adicione o PPA e instale FreeNX:

 add-apt-repository ppa:freenx-team
 aptitude update
 aptitude install freenx
 /usr/lib/nx/nxsetup --install

O script nxsetup instala e configura os componentes do servidor NX.

Geração de chaves do NX

O FreeNX usa chaves para autenticar sessões. Você pode gerar chaves personalizadas. Se fizer isso, guarde a chave com segurança e importe-a nos clientes. Em redes internas controladas isso é aceitável; para servidores expostos na internet, gere chaves próprias e distribua-as de forma segura.

8. Instalar o cliente NoMachine (NX Client)

No cliente (Windows, macOS, Linux), baixe o cliente NoMachine: http://www.nomachine.com/download.php

Abra o assistente de conexão e configure:

  • Nome da sessão: escolha algo descritivo.
  • Endereço do servidor: IP estático configurado anteriormente.
  • Velocidade da ligação: escolha LAN se estiver numa rede local.
  • Ambiente gráfico: mude para GNOME se o servidor usar GNOME.

Se você gerou chaves, marque para abrir a configuração avançada e importe a chave no campo Key.

Ao primeiro acesso, aceite a impressão digital RSA do servidor (compare com o fingerprint anotado no início). Se essa impressão digital mudar inesperadamente, trate como sinal de alerta.

9. Gerenciamento de usuários

Adicione contas locais via:

System -> Administration -> Users and Groups

Para cada usuário, ajuste shells, permissões e grupo. Em ambientes corporativos, prefira integração com LDAP/Active Directory quando possível.

10. Encaminhamento de porta e acesso externo

Para acesso externo, faça port forwarding da porta 22 no seu roteador para o IP do servidor. Em ambientes profissionais, prefira colocar o servidor atrás de um bastion host ou VPN. Se expuser SSH ao público, gere chaves e fortaleça o SSH conforme indicado.

11. Testes e critérios de aceitação

Critérios básicos para considerar o servidor pronto:

  • Conexão SSH local responde e autentica.
  • FireHOL está ativo e apenas porta 22 está aberta externamente.
  • Fail2ban bloqueia tentativas repetidas de login.
  • FreeNX responde e aceita conexões do cliente NoMachine.
  • A impressão digital RSA vista no cliente corresponde ao fingerprint anotado localmente.

Casos de teste breves

  • Teste de conexão local: ssh 127.0.0.1 deve exibir fingerprint.
  • Teste remoto LAN: conectar cliente NoMachine na rede local.
  • Teste de firewall: executar nmap/port scan a partir da rede para confirmar apenas 22 aberto.

12. Playbook rápido (SOP) — tarefas mínimas para instalar um servidor NX

  1. Instalar Ubuntu 9.10. 2. Atualizar repositórios: aptitude update. 3. Instalar openssh-server, fail2ban, firehol. 4. Configurar IP estático. 5. Ativar e configurar FireHOL. 6. Ajustar sshd_config e reiniciar ssh. 7. Instalar freenx e executar /usr/lib/nx/nxsetup –install. 8. Gerar e distribuir chaves se necessário. 9. Testar com cliente NoMachine.

13. Checklist por função

Administrador de sistema

  • IP estático ou reserva DHCP configurada
  • SSH hardening aplicado
  • FireHOL ativo com regras mínimas
  • Fail2ban ativo
  • FreeNX instalado e testado

Usuário final

  • Cliente NoMachine instalado
  • Importada chave do servidor (quando aplicável)
  • Teste de conexão concluído

Segurança / Auditoria

  • Logs do auth.log encaminhados para SIEM ou arquivo central
  • Políticas de senha aplicadas
  • Backup das chaves e configuração do servidor salvo em cofre seguro

14. Troubleshooting comum

Problema: não conecta via NoMachine

  • Verifique se o servidor responde em SSH: ssh usuário@ip
  • Confirme que FireHOL permite conexões na porta 22: iptables –list
  • Cheque fail2ban se o IP do cliente foi banido: fail2ban-client status sshd
  • Compare fingerprints SSH: se diferirem, não conecte até investigar

Problema: firewall não inicia

  • Veja logs do FireHOL em /var/log/syslog
  • Teste regras iptables manualmente para identificar conflito de política

Problema: sessão NX lenta

  • Ajuste a qualidade da sessão no cliente (reduzir resolução/cores)
  • Verifique consumo de CPU/memória no servidor
  • Confirme latência de rede com ping/traceroute

15. Alternativas e comparação rápida

  • VNC: simples, mas mais uso de banda e sem cifragem nativa
  • RDP/xrdp: bom para integração com Windows; comportamento gráfico pode variar
  • x2go: alternativa moderna ao NX, ativa e compatível com SSH; boa opção para substituição

Escolha quando preferir x2go: se precisar de solução mantida ativamente e suporte para versões novas do Ubuntu.

16. Fluxo de decisão (Mermaid)

graph TD
 A[Preciso de acesso remoto ao desktop] --> B{Ambiente atualizado?}
 B -- Sim --> C[Considere x2go ou NoMachine oficial]
 B -- Não --> D[FreeNX pode ser viável para Ubuntu 9.10]
 D --> E{Necessidade de baixa latência gráfica?}
 E -- Sim --> F[Teste localmente antes de implantação]
 E -- Não --> G[Proceda com instalação FreeNX]

17. Segurança adicional e mitigação de riscos

  • Escalonamento de privilégios: remova contas desnecessárias e defina sudo com parcimônia.
  • Backup de chaves: armazene chaves Nx e certificados em cofre (por exemplo, hardware security module ou cofre digital).
  • Monitoramento: centralize logs e alerte para mudanças de fingerprint SSH.
  • Atualizações: mesmo sendo uma versão antiga, mantenha pacotes atualizados dentro do que for possível.

18. Privacidade e conformidade

Dados trafegam cifrados via SSH, o que reduz risco de exposição em trânsito. Entretanto:

  • Se dados pessoais estiverem no servidor, verifique requisitos locais de proteção de dados (por exemplo, legislação de proteção de dados aplicável).
  • Mantenha políticas claras sobre retenção de logs e acesso remoto.

19. Migração e compatibilidade

  • Ubuntu 9.10 está fora do ciclo de suporte. Para requisitos de segurança e compatibilidade, planeje migrar para uma LTS suportada.
  • Ao migrar, verifique a disponibilidade de pacotes FreeNX ou prefira x2go/NoMachine com suporte moderno.

20. Modelos e snippets úteis

Exemplo de /etc/network/interfaces (modelo):

auto eth0
iface eth0 inet static
    address 192.168.1.253
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

Exemplo mínimo de /etc/fail2ban/jail.local (snippet já mostrado acima).

Exemplo de linha para /etc/firehol/firehol:

interface any world
    policy drop
    server ssh accept
    client all accept

Ajuste conforme sua topologia.

21. Aceitação e verificação final

Antes de considerar o serviço pronto para uso, valide:

  • Autenticação por SSH funciona com chaves e/ou senha conforme política
  • Logs de acesso e falhas são coletados e revisados
  • Clientes conseguem criar sessões, e aplicações críticas funcionam corretamente

22. Recursos adicionais

  • Documentação oficial do FreeNX
  • FireHOL
  • Fail2ban
  • NoMachine

Resumo final

Este guia explica como configurar um servidor de terminal com FreeNX em Ubuntu 9.10: instalação do sistema e pacotes necessários, configuração de rede estática, ativação do FireHOL e Fail2ban, instalação e teste do FreeNX, bem como recomendações de segurança e listas de verificação. Mesmo mantendo a compatibilidade com a versão do tutorial original, priorize migração para versões suportadas para produção.

Importante: siga políticas de segurança de sua organização antes de expor serviços a redes públicas.

Autor
Edição

Materiais semelhantes

Limitar largura de banda do Windows Update
Windows

Limitar largura de banda do Windows Update

Acelere seu navegador: addons e ajustes
Navegador

Acelere seu navegador: addons e ajustes

Baixar jogos no PS4 remotamente
Guia

Baixar jogos no PS4 remotamente

Ronggolawe: como proteger seu site
Segurança

Ronggolawe: como proteger seu site

Desligar Nest automaticamente quando esfria
Automação

Desligar Nest automaticamente quando esfria

Desativar Wi‑Fi automaticamente ao conectar Ethernet
Rede

Desativar Wi‑Fi automaticamente ao conectar Ethernet