Inicialização remota do Thinstation para ambiente Windows Terminal
Service
Fábio Fernando Pereira
Curso de Especialização em Redes e Segurança de Sistemas
Pontifícia Universidade Católica do Paraná
Curitiba, 9 de Novembro de 2009
Resumo
Este artigo é um estudo de caso que descreve a construção de um ambiente de
inicialização remota do sistema operacional Thinstation, que já foi implementado em uma
rede corporativa. Esta solução providencia que as estações clientes se tornem aptas a
conectar os servidores Windows Terminal Service de forma simples e mais prática que o
processo anterior, que consistia na instalação do sistema operacional e aplicativos
localmente no HD do computador. O TFTP e DHCP são os serviços de rede necessários para
prover as configurações e cópias das imagens de inicialização para cada cliente via PXE ou
Etherboot, tornando dispensável o uso do HD. A configuração e personalização da imagem
do Thinstation antes e após o processo de compilação, também serão abordadas com mais
detalhes.
1 Introdução
Assim como a Internet as redes locais ou LANs por volta de duas décadas vem
crescendo de forma explosiva, seja nas escolas, universidades, comércios, empresas,
escritórios e nos mais variados segmentos e aspectos de negócio [6]. Junto com a demanda,
surge à necessidade da contratação de mão de obra técnica para manutenção, formatação,
instalação de sistemas operacionais e aplicativos, assim como as suas devidas configurações
dos computadores que estão na LAN. Para minimizar esses efeitos apareceram várias
soluções que hoje são muito utilizadas, como exemplo poderíamos citar o Citrix ICA,
Windows Terminal Services, VNC, NoMachine NX [1]. O ambiente que motivou a
elaboração deste trabalho constitui-se basicamente de uma LAN, que disponha de diversos
tipos e modelos de computadores, desde antigos aos mais atuais, assim como os
computadores enxutos ou thin client, que já vem com baixa capacidade de processamento,
memória e armazenamento, apresentando um bom custo e benefício para ambiente onde se
trabalha, principalmente com acesso a terminais gráficos que disponibilizam uma área de
trabalho completa com as mais variadas aplicações como é o caso do Windows Terminal
Server ou simplesmente WTS. O tempo perdido com as configurações e reinstalação dos
sistemas operacionais nas estações cliente de WTS, muitas vezes causado por alguma falha no
HD, que dependendo do problema era preciso substituir por um novo. Como todo processo
pesado gerado pelas aplicações fica centralizado no servidor, deixando a cargo do cliente
apenas a reprodução da tela gráfica, não necessitava-se de sistemas operacionais pesados e
cheios de aplicativos. Pensando-se neste cenário foi adotado o Thinstatios, por ser uma
distribuição Linux enxuta, com facilidades de instalação, configuração e com suporte aos
principais protocolos de conectividade a terminais citados anteriormente como padrão em seu
escopo. Por ser um sistema operacional pequeno, ele é próprio para ser carregado e
configurado via rede, através de métodos de inicialização (boot) remoto direto para memória
RAM do computador dispensando o uso de HD (estações de trabalho conhecida como
diskless) [1]. Mas antes de começar a descrever a implementação deste sistema, para melhor
compreensão vamos rever os conceitos dos serviços de rede que devem estar ativos para que o
sistema funcione conforme o esperado.
2 TFTP
O primeiro e obrigatório serviço que deve estar ativo na rede é o Trivial File Transfer
Protocol ou TFTP, é ele que disponibilizará os arquivos de imagem e de configuração do
Thinstation para cada estação cliente conectada a LAN. O TFTP é parecido com o FTP mais
de forma bem mais simples, o FTP é um protocolo de transferência de arquivos mais geral na
família TCP/IP, conforme Comer (2006, p. 307) comenta sobre a complexidade deste
protocolo para algumas aplicações, “[...] o FTP exige que clientes e servidores gerenciem
várias conexões TCP concorrentes, algo que pode ser difícil ou impossível em computadores
embutidos, que não tem sistema operacional sofisticado”. O TFTP é menor e serve para
transferência de arquivos simples que não necessitem de autenticação para tal operação. A
exemplificar a importância deste protocolo continua Comer , “[...] os fabricantes de sistemas
embutidos podem codificar o TFTP na memória de leitura (ROM) e usá-lo para obter uma
imagem de memória inicial quando a máquina é ligada. O programa na ROM é chamado de
bootstrap do sistema. A vantagem de usar o TFTP é que ele permite que o código de
bootstrapping use os mesmos protocolos TCP/IP subjacentes que o sistema operacional, uma
vez iniciada a execução” [2].
3 DHCP
O Dynamic Host Configuration Protocolo ou simplesmente DHCP é um sucessor do
BOOTP, que deve estar ativo na rede para facilitar as configurações de rede e automatizar o
processo de inicialização de cada host [2]. Em uma rede TCP/IP todos os computadores
devem possuir um endereço IP distintos. Caso não exista o DHCP ativo na rede, todas as
configurações da rede devem ser configuradas manualmente em cada estação, tomando
sempre o cuidado de não repetir um endereço IP que esteja em uso por outra estação [3].
Idealizando quando utilizar o DHCP, Ferreira (2003, p. 349) comenta que “em uma rede
pequena isso é fácil de ser feito, mas em grandes redes isso se torna uma tarefa muito
trabalhosa e bastante sujeita a falhas. Para evitar esse problema, foi criado o DHCP, que tem
como função principal fornecer um endereço IP dinamicamente a um computador no
momento de sua conexão à rede. O servidor DHCP verifica qual o endereço IP disponível
numa tabela cadastrada previamente dentro deste e informa ao solicitante esse endereço
tornando-o indisponível para outras solicitações” [3]. O DHCP trabalha sobre o UDP para
transferir mensagens, que além de conter as configurações da rede como o IP, máscara de
rede, endereço de um roteador, endereço de DNS e o mais interessante entre outras opções é a
possibilidade de indicar o servidor que responderá a requisições e o nome do arquivo de boot.
O cliente, então, usa um protocolo de transferência padrão como o TFTP, para obter a imagem
[2].
4 Ambiente da implantação
A implementação e testes do sistema de boot remoto com o Thinstation, se deu em um
ambiente empresarial de 180 estações de trabalho, na rede onde todos os usuários acessam o
Windows Terminal Service. A conversão das máquinas para o sistema descrito aqui está sendo
gradual, conforme se julgue necessário. Atualmente conta com 40 estações rodando o
Thinstation no ambiente de produção. As soluções adotadas para implementar este sistema
foram um servidor TFTP rodando no GNU/Linux CentOS e o servidor DHCP foi utilizado o
mesmo que já estava rodando no Windows 2003 Server, apenas foram necessárias algumas
modificações nas configurações que serão melhor detalhados na seqüência.
5 Instalando e configurando o TFTP
A instalação e configuração do serviço TFTP, além da preparação e compilação da
imagem para boot remoto foram todas realizadas em cima do CentOS 5.2. A instalação do
CentOS foi de forma padrão, sem a necessidade de alguma eventual modificação em seu
procedimento de instalação. Depois de concluir a instalação do sistema operacional e com o
computador já conectado a internet, basta digitar o comando yum install -y tftp-server para
instalar os pacotes necessários.
Figura 1: Fim do processo de instalação dos pacotes
5.1 Xinetd
Com é possível notar na figura 1, no final do processo é instalado como dependência
do tftp-server o pacote xinetd. O xinetd é usado para um melhor controle e disparo do serviço
TFTP apenas quando for requisitado [5]. Na figura 2, segue o script que é criado
automaticamente dentro do diretório /etc/xinetd.d quando os pacotes são instalados. O básico
a ser observado neste arquivo é a opção “disable” que deve estar com o valor “no” para que o
serviço fique ativo quando o xinetd for iniciado e a opção “server_args” indica a raiz do
serviço TFTP [5].
Figura 2: Arquivo que configura e habilita o serviço TFTP
Vale também lembrar que as configurações dos serviços a serem carregados pelo CentOS na
inicialização, podem ser feitos através da aplicação ntsysv. Quando for habilitado a opção tftp
é necessário lembrar também de ativar a opção xinetd para que o serviço fique realmente
ativo.
Figura 3: Habilita os serviços na inicialização do CentOS
6 Preparando o Thinstation
Após fazer o download do arquivo Thinstation-2.2.2.tar.gz do site, que até o momento
da escrita deste artigo é a última versão estável disponível [1], basta descompactar o pacote
para dar início a personalização da imagem que ficará disponível na raiz do TFTP. A fim de
manter os mesmos ícones de acesso aos servidores de WTS que já estavam padronizados
neste ambiente corporativo, foram editados os seguintes scripts de configuração dentro dos
diretórios Thinstation-2.2.2/packages/rdesktop/etc/cmd/desktop.window e Thinstation2.2.2/packages/rdesktop/etc/cmd/rdesktop.global para inserir as opções de -f para tela cheia, u para adição de usuário e -p para a senha quando necessário e a opção –d para adição do
domínio, que nos testes realizados não funcionou e precisou ser removido da configuração,
fazendo com que o usuário tome o cuidado de escolher o domínio na hora de fazer o logon no
WTS. O script Thinstation-2.2.2/packages/xtdesk/etc/xtdesk.functions que continha na sua
lógica várias estruturas condicionais para a construção de um ícone flexível, permitia acesso a
qualquer servidor de WTS disponível na LAN, desde que o usuário preenchesse com o IP
certo, o que era inviável. Com base neste script, surgiu um script novo e de forma mais
simples com a adição de novos ícones pré-configurados na área de trabalho (basta apenas dois
click com o mouse para o Terminal Server escolhido abrir), ficando da seguinte forma:
#!/bin/sh
#Functions
xtdesk_icons ()
{
let x=75
let y=40
echo "table Icon">$HOME/.xtdesktop/WTS.lnk
echo " Type: Program">>$HOME/.xtdesktop/WTS.lnk
echo " Caption: WTS">>$HOME/.xtdesktop/WTS.lnk
echo
"
Command:
pkg
192.168.1.2">>$HOME/.xtdesktop/WTS.lnk
fullscreen
rdesktop
echo " Icon: /usr/icons/rdesktop_32x32.xpm">>$HOME/.xtdesktop/WTS.lnk
echo " X: 132">>$HOME/.xtdesktop/WTS.lnk
echo " Y: $y">>$HOME/.xtdesktop/WTS.lnk
echo "end">>$HOME/.xtdesktop/WTS.lnk
echo "y=$y; x=$x" > /tmp/entry
…
}
O restante do código foi omitido por ser extenso e repetitivo. A cada ícone adicionado
na área de trabalho, basta alterar o nome do arquivo WTS.lnk e as instruções depois das opção
Caption e Command, o restante do código repete-se conforme o trecho acima. As imagens de
fundo da inicialização e do desktop podem ser alteradas respectivamente dentro dos diretórios
Thinstation-2.2.2/utils/tools/boot e Thinstation-2.2.2/packages/desktop/etc.
Figura 4: Ícones para Acesso ao WTS
Dentro do arquivo passwd, conforme a figura 5, contém os usuários e senhas cadastradas no
Thinstation. O importante nesse ponto é fazer a alteração da senha do usuário root para uma
do seu conhecimento, bastando apenas alterar o segundo campo dentro do arquivo ou a
palavra “pleasechangeme” para outra qualquer. A utilidade dessa mudança além da segurança,
fica evidente quando mais tarde for necessário administrar as estações remotamente via SSH.
Figura 5: Alterando a senha do root
Antes de inicializar a compilação e geração das imagens de inicialização do sistema,
deve-se verificar quais serão os módulos de drivers e programas que serão adicionados ou
removidos, deve-se habilitar apenas o que for realmente útil e necessário, lembrando que as
otimizações anteriores levam em conta a utilização do Icewm como gerenciador de janelas
que deve estar habilitado no arquivo build.conf, todas as configurações presentes no arquivo
estão comentadas tornando o arquivo auto explicativo. Feito as devidas otimizações basta
digitar ./built dentro do Thinstation-2.2.2 para iniciar o processo de compilação da imagem.
Quando terminado o processo copiar todos os arquivos de Thinstation-2.2.2/bootimagens/pxe/ para a raiz do servidor TFTP. Para que as máquinas possam carregar com as
configurações padrões ou de forma personalizada para cada computador, deve-se modificar se
necessário nessa mesma ordem o arquivo thinstation.conf.sample e alterar o nome para
thinstation.conf.network e thinstation.conf.<MAC>. A opção <MAC> do último arquivo deve
ser alterada para o endereço MAC da interface de rede do cliente que se deseja obter alguma
configuração exclusiva ou diferentes do arquivos padrão, estes arquivos também devem estar
presentes na raiz do servidor TFTP.
7 Configurando o DHCP
As configurações do servidor DHCP são simples e rápidas de realizar. Depois de
configurado e ativado o servidor no Windows 2003 Server, bastou apenas adicionar duas
opções a mais em seu escopo para que os clientes encontrem a imagem do Thinstation na
inicialização. Conforme a figura 6, na opção 067 do escopo deve ser adicionado o nome do
arquivo de inicialização no campo valor da seqüência, que no caso é o pxelinux.0, e a opção
066 deve ser ativada passando como valor o IP do servidor TFTP.
Figura 6: Configurações do Servido DHCP
8 Carregando o Thinstation
Para os computadores clientes é necessário que apenas estejam prontos para receber as
instruções do DHCP e ter condições de carregar o arquivo de inicialização via TFTP. A
melhor forma de obter as configurações de rede e carregar o arquivo de inicialização é
habilitar a opção PXE (Preboot eXecution Environment) e fazer inicialização via rede, caso a
interface de rede não tenha suporte a PXE as outras opções de inicialização seriam através de
um disquete, CD, HD, Flash-disk com o carregamento de um pequeno software que
condiciona o cliente para a inicialização remota, método conhecido como Etherboot [1].
9 Considerações finais
Algum tempo depois da implantação foi notória as vantagens do uso do Thinstation
em comparação ao método antes utilizado, de formatação, instalação e configuração do
sistema operacional no HD dos computadores clientes. O uso do Thinstation dispensou
também a necessidade de HDs nas estações clientes, apresentou melhor facilidade na
administração e respostas mais rápidas na necessidade de alguma eventual manutenção ou
algum outro ajuste nas configurações, pois passaram a serem feitas todas de forma
centralizadas apenas modificando alguns parâmetros no script de inicialização no próprio
servidor e podendo também acessar as estações através do SSH.
Na questão da segurança houve melhoras por se tratar de um sistema operacional
enxuto e otimizado para promover acesso ao WTS, desmotivando o usuário a fazer alguma
modificação não autorizada ou até uso de aplicativos sem o conhecimento da equipe de TI,
que antes sempre poderia acabar passando despercebido com a instalação dos inchados
sistemas operacionais cheios de aplicações e recursos desnecessários ao ambiente, deveriam
ser removidos ou protegidos via regras de políticas de segurança nos sistemas.
Apesar das melhorias já citadas com relação a utilização do Thinstation na rede
corporativa, em algumas situações se torna inviável a sua utilização em todas os
computadores da rede, devido a necessidade de rodar e instalar algumas aplicações e
hardwares específicos.
Bibliografia
[1] Pagina oficial do projeto Thinstation. Disponível em :
http://www.thinstation.org/
[2] Comer, Douglas E. Interligação de redes com TCP/IP - Volume 1 - 5 a ed. Rio de
Janeiro: Editora Elsevier, 2006.
[3] Ferreira, Rubem E. Linux Guia do Administrador do Sistema. São Paulo: Editora
Novatec, 2003.
[4] CREATING A THIN-CLIENT FOR THE WINDOWS ENVIRONMENT USING
"THINSTATION". Disponível em: http://thinstation.sourceforge.net/docs/HowTo-NetBoo
t.txt
[5] Equipe Mandriva. Administração de Redes Linux I – Apostila Oficial de formação
Mandriva Linux. Conectiva S.A. 2005, p. 151-161.
[6] Comer, Douglas E. Redes de Computadores e Internet – 4 a ed. Porto Alegre: Bookman,
2007.
Download

Fabio Fernando Pereira