Sei sulla pagina 1di 119

Escola Superior de Tecnologia e Gesto de Leiria Instituto Politcnico de Leiria

Anlise de Solues Open Source para Administrao de Redes

Patrcia Sofia Mouro Nunes da Silva Leiria, Setembro de 2006


(c) Patrcia Silva 2006

(c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Identificao do Projecto
Projecto: Anlise de Solues Open Source para Administrao de Redes

Organizao: Instituto Politcnico de Leiria Escola Superior de Tecnologia e Gesto de Leiria Departamento de Engenharia Informtica

mbito: Licenciatura em Engenharia Informtica e Comunicaes Disciplina de Projecto I (3. ano)

Perodo de Elaborao: De Maro a Setembro de 2006

Autora: Patrcia Sofia Mouro Nunes da Silva, n. 10436 Contacto: eic10436@student.estg.ipleiria.pt

Orientador: Mrio J. Antunes Contacto: mario.antunes@estg.ipleiria.pt

ii (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Agradecimentos
Em primeiro lugar, os meus agradecimentos so dirigidos ao meu orientador, o professor Mrio Antunes, pela sua excelente colaborao, que desde o primeiro momento se disponibilizou para todos os esclarecimentos e elevou a minha motivao de modo a atingir os objectivos. Agradeo igualmente, a todos os professores que ao longo do curso me prepararam para este tipo de desafio, assim como aos meus pais, amigos e colegas, que com o seu apoio me auxiliaram a superar as dificuldades.

iii (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Resumo
O constante crescimento da infra-estrutura de sistemas e tecnologias de informao, numa empresa ou organizao, torna necessariamente a administrao de sistemas e redes mais trabalhosa. Para se manterem os sistemas operacionais, necessrio uma constante manuteno e uma administrao cuidada, que dever ser rpida e eficaz. O problema que, em sistemas UNIX, torna-se muito moroso editar todos os ficheiros de configurao de um determinado servio, normalmente extensos e complexos, para resolver um determinado problema. Embora as vrias distribuies de Linux j possuam ambientes grficos amigveis, so no entanto, ainda bastante bsicas para os servios mais exigentes. Perante isto, o administrador de sistemas e redes, recorre frequentemente ao uso de scripts para tentar optimizar as suas tarefas. Todavia, estes nem sempre conseguem garantir a centralizao dessas tarefas e a escalabilidade necessria numa rede de dimenso considervel. neste contexto, que surgem ferramentas de administrao, como o Webmin. Trata-se de uma aplicao Open Source desenvolvida em Perl, que permite editar os vrios ficheiros de configurao de um servio de forma simples, amigvel e muito intuitiva, por meio de formulrios preenchidos pelo administrador, atravs de um browser Web. Esses formulrios tm de ser preenchidos correctamente e a partir do momento em que so submetidos, o seu contedo aplicado imediatamente nos respectivos ficheiros de configurao. O Webmin permite fazer configuraes em cluster atravs do protocolo de comunicao RPC (Remote Procedure Call) conseguindo desse modo propagar as alteraes de configurao de forma central e automatizada. Assim, com o Webmin possvel manter o controlo sobre os sistemas de uma forma rpida, simples e de baixo custo, garantindo as funes de centralizao, escalabilidade e automatizao de tarefas, oferecendo assim ao administrador um programa global e abrangente. Este projecto, pretende demonstrar como possvel administrar uma rede atravs do Webmin. Os principais objectivos consistem em explicar a estrutura interna do programa, o seu funcionamento e a configurao de alguns cenrios que ilustrem as potencialidades do Webmin. Atravs dos resultados

iv (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

obtidos pretende-se avaliar as suas vantagens, vulnerabilidades e pontos em que deveria estar mais desenvolvido, bem como a sua aplicabilidade em situaes reais.

v (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

ndice
Identificao do Projecto .......................................................................... ii Agradecimentos........................................................................................ iii Resumo ......................................................................................................iv ndice .........................................................................................................vi ndice de Figuras ..................................................................................... ix ndice de Exemplos .................................................................................. xi ndice de Tabelas .................................................................................... xii Lista de Acrnimos ................................................................................ xiii 1 2 Introduo ...........................................................................................1 Administrao de sistemas e redes .....................................................3
2.1 2.2 2.3 2.4
2.4.1 2.4.2 2.4.3 2.4.4 2.4.5

Sistemas Operativos............................................................................................... 3 Redes Informticas ................................................................................................ 5 Software Open Source ........................................................................................... 8 O Sistema UNIX ..................................................................................................... 9
O Sistema Linux .............................................................................................................11 Funcionamento Geral do Linux ......................................................................................12 Sistema de Ficheiros ........................................................................................................vi Manipulao de volumes de dados .................................................................................16 Shell................................................................................................................................16

2.5 2.6
2.6.1 2.6.2

O Administrador de Sistemas ............................................................................. 17 Administrao de Sistemas Linux ...................................................................... 19


Por linha de comando .....................................................................................................22 Por scripts .......................................................................................................................26

vi (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

2.6.2.1 2.6.2.2 2.6.2.3 2.6.2.4 2.6.3

AWK .....................................................................................................................28 SED .......................................................................................................................34 PERL.....................................................................................................................36 Python ...................................................................................................................40

Por outros utilitrios .......................................................................................................41

Webmin ..............................................................................................43
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 Instalao .............................................................................................................. 46 A interface com o utilizador do Webmin ........................................................... 47 Funcionamento ..................................................................................................... 48 Organizao.......................................................................................................... 50 Processamento de Pedidos................................................................................... 52 Segurana na Rede............................................................................................... 54 Cluster ................................................................................................................... 55 Remote Procedure Call........................................................................................ 57 Desenvolvimento de novos mdulos para o Webmin........................................ 60 Concluses............................................................................................................. 67

Cenrios de teste................................................................................69
4.1 4.2 4.3 4.4 4.5 Cenrio 1: Definio do cluster........................................................................... 72 Cenrio 2: Criao de um utilizador no Cluster ............................................... 74 Cenrio 3: Adio de um novo mdulo .............................................................. 76 Cenrio 4: Instalao e configurao de um servio......................................... 80 Cenrio 5: Administrao uma rede heterognea com mquina Windows .... 85

5 6

Concluses.........................................................................................91 Referncias ........................................................................................93

ANEXOS...................................................................................................95
Anexo A - Servios do Webmin........................................................................................ 96

vii (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Anexo B Bibliografia Auxiliar Consultada ................................................................ 104

viii (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

ndice de Figuras
Fig. 1 Modelo abstracto das camadas de um sistema computacional...................................................3 Fig. 2 Topologias de Rede.....................................................................................................................6 Fig. 3 Modelo OSI. ................................................................................................................................7 Fig. 4 Comparao entre o funcionamento do modelo OSI e a comunicao por carta[31]. ..............8 Fig. 5 Organograma representativo do sistema de ficheiros Linux. ...................................................14 Fig 6 Recursos administrados pela rea de administrao de sistemas e redes.................................19 Fig. 7 Passos para a criao de um novo utilizador ...........................................................................21 Fig. 8 Diagrama Entidade-Relacionamento entre os 3 ficheiros .......................................................24 Fig. 9 Processo de insero um utilizador pela linha de comando. ....................................................25 Fig. 10 Exemplo em PERL na anlise de msicas...............................................................................38 Fig. 11 Ecran de Login do Webmin.....................................................................................................47 Fig. 12 Categoria Webmin do Programa. ...........................................................................................48 Fig. 13 Arquitectura do Webmin. ........................................................................................................49 Fig. 14 Processamento de pedidos no Webmin [4]. ............................................................................54 Fig. 15 Funcionamento de um cluster no Webmin. .............................................................................57 Fig. 16 Modelo representativo do funcionamento do protocolo RPC .................................................57 Fig. 17 Cenrio geral da rede implementada......................................................................................69 Fig. 18 Mdulo SSL Encryption ..........................................................................................................72 Fig. 19 Cluster de teste........................................................................................................................73 Fig. 20 Formulrio de insero de um utilizador no cluster...............................................................75 Fig. 21 Mdulo Sysstats.......................................................................................................................78 Fig. 22 Viso geral do funcionamento do sistema...............................................................................79 Fig. 23 Painel de configurao do servidor Apache ...........................................................................82 Fig. 24 Painel relativo ao servidor Apache depois de configurado ....................................................83 Fig. 25 Ficheiro index.html .................................................................................................................84 Fig.26 Resultado do ndex.html ...........................................................................................................85 Fig. 27 Painel de Entrada do Webmin na verso para Windows........................................................87

ix (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 28 Registo da MAQ4 no Servers Index da MAQ1........................................................................88 Fig. 29 Mquinas geridas pela MAQ1 ................................................................................................89

x (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

ndice de Exemplos
Exemplo 1 Extracto do ficheiro/etc/passwd ....................................................................................23 Exemplo 2 Extracto do ficheiro /etc/group. ....................................................................................23 Exemplo 3 Aplicao de expresses regulares em Perl. .....................................................................28 Exemplo 4 Sintaxe do AWK. ................................................................................................................29 Exemplo 5 Exemplo de aplicao do AWK. ........................................................................................30 Exemplo 6 Script PERL para apoio de um programa CGI. ................................................................64 Exemplo 7 Um programa CGI.............................................................................................................66

xi (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

ndice de Tabelas
Tabela 1 Tabela representativa do funcionamento dos metacaracteres. ............................................28 Tabela 2 Tabela de variveis e funes do AWK. ............................................................................... 33 Tabela 3 Vantagens do Webmin. .........................................................................................................45 Tabela 4 Hardware instalado nas mquinas de teste..........................................................................70 Tabela 5 Software instalado nos diferentes cenrios .......................................................................... 71 Tabela 6 Lista de tarefas a executar nos hosts....................................................................................71 Tabela 7 Lista de tarefas para a definio de um cluster....................................................................73 Tabela 8 Tarefas necessrias para a criao de um utilizador Webmin.............................................74

Tabelas em Anexo:
Tabela A 1 Mdulos da Categoria Webmin.........................................................................................96 Tabela A 2 Mdulos da categoria System. ..........................................................................................98 Tabela A 3 Mdulos da categoria Servers......................................................................................... 100 Tabela A 4 Mdulos da categoria Networking.................................................................................. 101 Tabela A 5 Mdulos da categoria Hardware. ................................................................................... 101 Tabela A 6 Mdulos da categoria Cluster......................................................................................... 103 Tabela A 7 Mdulos da categoria Others.......................................................................................... 104

xii (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Lista de Acrnimos
ACL CGI CPU Access Control List Common Gateway Interface Central Processing Unit

CSMA/CD Carrier Sense Multiple Access with Collision Detection E/S FDDI FTP GPS HTML ISO LAN MAC MAN OSI PC PERL PID POSIX RPC SED SO TCP UDP URL WAN XML Entrada/Sada Fiber Distributed Data Interface File Transfer Protocol Global Positioning System HyperText Markup Language International Organization for Standardization Local Area Network Mdium Access Control Metropolitan Area Network Open Systems Interconnection Personal Computer Practical Extraction and Report Language Process Id Portable Operating System Interface Remote Procedure Call Stream Editor Sistema Operativo Transmission Control Protocol User Datagram Protocol Uniform Resource Locator Wide Area Network Extensible Markup Language

xiii (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

1 Introduo
A comunicao entre as pessoas e as organizaes est em exponencial desenvolvimento, tendo a sua importncia aumentado a partir do momento em que a tecnologia permitiu consolidar as mais diversificadas tarefas, desde as profissionais s de lazer. Um sistema informtico inclui um vasto conjunto de componentes, envolvidos num processo de comunicao, como sejam o hardware, aplicaes, utilizadores e servidores. As redes informticas apoiam-se nos sistemas e suportam vrios tipos de aplicaes, como a transmisso de dados, voz e vdeo, comunicao entre terminais e computadores e tm de ser bem projectadas para que funcionem efectivamente. Assim, numa sociedade de informao crucial a gesto e manuteno dos sistemas e redes, para que o quotidiano das pessoas no se torne num pesadelo. O administrador de sistemas o responsvel por manter os sistemas operacionais e resolver os mais diversos problemas que ocorrem a cada momento. Portanto, as tarefas de um administrador so muitas e vastas, como ser descrito mais frente. A responsabilidade grande, porque se uma empresa, tiver o seu sistema informtico indisponvel, mesmo que seja por um curto perodo de tempo isso pode significar uma perda acentuada de capital. Por exemplo, numa empresa cujo volume de vendas seja realizado pela Internet, a inoperacionalidade do seu servio Web poder traduzir-se numa quebra bastante significativa de facturao. Em sistemas operativos Open Source, existem ferramentas para alm da tradicional linha de comandos, que procuram executar as mesmas tarefas de uma forma menos morosa e mais rpida, com a adicional vantagem de continuarem a ser de baixo custo. Essas aplicaes, podem ser scripts que tentem automatizar determinadas tarefas, interfaces grficas das vrias distribuies, at aplicaes de administrao mais elaboradas, que conciliam o melhor dos scripts com a interface grfica, como o caso do Webmin.

1 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

O Webmin uma aplicao de administrao, que usa uma interface web e facilita muito a gesto de redes e sistemas. Une numa s aplicao a administrao centralizada de vrias mquinas da rede, tornando assim, a automatizao de algumas tarefas bastante atractiva. Sero implementados alguns cenrios de administrao de redes e sistemas, utilizando o Webmin. Ser tambm testado um cenrio onde o Webmin tentar gerir uma rede heterognea, usando uma mquina Windows. Pretende-se analisar o comportamento da aplicao nos vrios cenrios e tirar concluses perante os resultados obtidos. Este documento est organizado da seguinte forma: no captulo 2 sero abordados os conceitos bsicos de sistemas e redes informticas que sustentam o captulo 3, onde ser descrito o funcionamento e utilidade do Webmin. O captulo 4 ilustrar os vrios testes elaborados e as concluses sobre os mesmos. Por ltimo, o captulo 5 visa demonstrar as concluses finais de todo o trabalho e enumerar alguns tpicos de possvel aplicao em trabalhos futuros. Num dos anexos encontrar-se- uma listagem dos mdulos standard essenciais, e uma breve sntese sobre cada um deles. No outro, mencionam-se referncias bibliogrficas consultadas que no foram referenciadas no texto.

2 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Administrao de sistemas e redes

Para que o objectivo final deste projecto seja compreendido, necessrio introduzir alguns conceitos bsicos que servem de suporte ao desenvolvimento do tema. Assim, este captulo enquadra os principais conceitos associados aos sistemas operativos e s redes informticas, que suportam a administrao de sistemas e redes, contemplando redes heterogneas.

2.1 Sistemas Operativos


O sistema operativo um conjunto de programas necessrios para que um computador seja utilizado de forma adequada. Ou seja, consiste num programa que permite a comunicao entre os utilizadores e o hardware, fazendo assim de intermedirio entre as aplicaes e os componentes de hardware como pode ser visto na Fig. 1. Para alm disso, o responsvel por controlar a execuo das aplicaes e esconder os pormenores de hardware garantindo a fiabilidade e segurana da informao. Assegura, por exemplo, a comunicao entre as aplicaes de cpia de ficheiros e os dispositivos onde os mesmos sero guardados, como o caso dos discos.

Aplicaes

Utilizador

Utilitrios Programador Sistema Operativo Projectista do Sistema Operativo

Hardware do Computador

Fig. 1 Modelo abstracto das camadas de um sistema computacional. Um sistema operativo constitudo por um ncleo, ou kernel, e um conjunto de programas bsicos. O kernel faz a gesto directa dos dispositivos de entrada/sada, gere a memria e controla o uso do CPU pelos vrios processos do sistema. Para alm 3 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

do kernel, um sistema operativo geralmente distribudo com software de sistema que gere a interface grfica com o utilizador, bem como utilitrios para execuo de tarefas como gerir ficheiros de configurao do sistema operativo. Alguns dos sistemas operativos mais conhecidos so o Windows XP, Linux, FreeBSD, Apple e MacOS entre muitos outros. Os sistemas operativos permitem para alm do acesso aos dispositivos de E/S (como modems, placas de rede, teclado), a criao de programas como os depuradores usados pelos programadores, e execuo de programas, assim como o acesso controlado aos ficheiros (sistema de ficheiros) e ao sistema (por login e password). So eles que tambm fazem a deteco e do resposta a erros, tanto de hardware (falha em dispositivos E/S, por exemplo, no disco) como de software (como o overflow aritmtico), e o escalonamento de quais os processos a serem executados, assim como, a contabilizao de recursos (estatsticas e monitorizao do sistema) com vista a possveis optimizaes. Os sistemas que possuem grande poder computacional podem ser usados como um sistema distribudo, paralelo ou em tempo real. Um sistema distribudo aproveita a partilha de recursos e a fiabilidade dos sistemas actuais para distribuir a computao pelos vrios processadores residentes em computadores distintos como por exemplo, a Internet (World Wide Web), que o maior sistema distribudo. Por seu lado, um sistema paralelo, aquele que distribui a carga computacional pelos vrios processadores dum determinado computador. As imagens em 3D do filme Titanic foram elaboradas recorrendo ao uso deste tipo de sistemas. Os sistemas em tempo real so usados quando necessrio relacionar o tempo cronolgico exterior com o tempo de execuo dos programas, produzindo resultados certos no tempo certo e adaptando-se a variaes, atravs do conceito de dar prioridade s tarefas crticas, usado frequentemente na indstria aeroespacial e um exemplo de um sistema em tempo real o GPS (Global Positioning System) [10].

4 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

2.2 Redes Informticas


Uma rede informtica consiste num conjunto de dois ou mais computadores ou dispositivos computacionais (software e perifricos) que esto interligados e partilham recursos entre si. As redes podem ser classificadas e distinguidas por vrios factores, como sejam a dimenso e localizao geogrfica, a arquitectura, a topologia e os meios de transmisso utilizados. Quanto sua dimenso e localizao geogrfica dos elementos que a compem, so frequentemente classificadas de acesso local denominadas LANs, quando se tratam de redes pequenas em que os computadores se encontram prximos, assim como de acesso metropolitano (Metropolitan Area Network - MAN), quando so compostas por mquinas que abrangem reas semelhantes a uma cidade, e quando abrangem grandes reas geogrficas so denominadas de redes de rea alargada ou WANs (Wide Area Networks). Acerca das arquitecturas de rede, a mais comum em redes locais a Ethernet. Esta tecnologia utiliza o conceito de vrios ns na rede partilharem o mesmo meio fsico, acedendo a ele atravs de um protocolo de acesso (CSMA/CD Carrier Sense Multiple Access with Collision Detection). Este funcionamento poder implicar a ocorrncia de colises quando dois ns da rede acedem em simultneo ao meio fsico para transmisso. A identificao dos ns na rede Ethernet feita por um endereo de 48 bits designado de endereo MAC (Medium Access Control). Para alm da Ethernet, existem outros tipos de arquitecturas, como por exemplo, Token-Ring e FDDI (Fiber Distributed Data Interface). Quanto s topologias de rede, as mais comuns so em anel, bus, estrela, malha e rvore onde os seus nomes indicam a disposio dos computadores na rede, como pode ser visto na Fig. 2.

5 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 2 Topologias de Rede. Quanto aos meios de transmisso, as redes podem ser com, ou sem fios. Sobre a cablagem utilizada, as mais comuns so o cabo de cobre e a fibra ptica. Para facilitar o processo de padronizao e obter interconectividade entre mquinas de diferentes sistemas operativos, a Organizao Internacional de Padronizao (ISO International Organization for Standardization) aprovou, no incio dos anos 80, um modelo de referncia para permitir a comunicao entre mquinas heterogneas, denominado OSI (Open Systems Interconnection). Esse modelo serve de base para qualquer tipo de rede, seja de curta, mdia ou longa distncia. O modelo OSI pode ser observado na Fig. 3. A camada fsica a responsvel pelo equipamento, e pela definio das caractersticas elctricas e mecnicas do meio. A camada de ligao de dados corrige os erros que possam ocorrer a nvel fsico, faz o controlo de fluxo e estabelece o protocolo de comunicao entre os sistemas directamente ligados. A camada de rede responsvel pelo endereamento dos pacotes pelo seu encaminhamento e pelo controlo do congestionamento da rede. A camada de transporte a responsvel por separar o contedo das camadas mais baixas da rede (1 a 3) das mais altas da rede (5 a 7) atravs de um protocolo de comunicao que pode ser orientado ligao, TCP (Transmission Control Protocol) ou no orientado ligao, UDP (User Datagram Protocol) que no oferece garantia de entrega dos datagramas. Na camada de sesso, estabelecida uma sesso de comunicao entre duas aplicaes em computadores diferentes, se porventura a rede falhar, os 6 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

computadores reiniciam a transmisso dos dados a partir da ltima marcao recebida pelo computador receptor. A camada de apresentao traduz os dados da linguagem de aplicao para a linguagem de rede e vice-versa, pois encripta os dados para serem transmitidos atravs da rede, evitando assim problemas de incompatibilidade, permitindo que arquitecturas de hardware e SOs diferentes troquem informao. A camada de aplicao faz a interface entre o protocolo de comunicao e a aplicao que pediu a informao atravs da rede. Telnet e FTP (File Transfer Protocol) so aplicaes de rede que existem na camada de aplicao.

Fig. 3 Modelo OSI. Para esclarecer as funes de encapsulamento/desencapsulamento dos dados na rede em cada uma das camadas, feita uma analogia com a comunicao por carta na Fig. 4. De forma semelhante da figura, os dados so processados em segmentos e posteriormente em bits, originando o processo inverso no extremo comunicante.

7 (c) Patrcia Silva 2006

Desencapsulamento dos dados

Encapsulamento dos dados

Anlise de Solues Open Source para Administrao de Redes

Fig. 4 Comparao entre o funcionamento do modelo OSI e a comunicao por carta[31].

2.3 Software Open Source


Um sistema operativo, como outros programas, pode ser software proprietrio (p.e. Microsoft) ou de cdigo aberto (p.e. Linux). O software proprietrio comercial, ou seja, um utilizador ao adquiri-lo precisa de comprar uma licena de utilizao e no pode fazer cpias do programa. O software de cdigo aberto, que pode ser comercial ou no, permite a visualizao do cdigo-fonte e utilizado sob uma licena GPL (General Public License). Esta licena permite que o software seja distribudo e comercializado por qualquer pessoa, desde que essa avise o receptor acerca dos termos da licena. Permite ainda que qualquer pacote de software que derive de outro protegido pela GPL, seja tambm abrangido por essa licena, bem como todo o cdigo-fonte do programa protegido esteja acessvel publicamente. Ou seja, deve ser fornecido aos utilizadores ou informada a maneira de o obter. Desta forma, o programa de computador pode ser usado, copiado, estudado e modificado perante as 8 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

necessidades do utilizador, que pode tambm publicar as alteraes que efectuou ao programa. A importncia do acesso ao cdigo-fonte concentra-se em ser adaptvel s necessidades de cada utilizador. Entenda-se que software de cdigo aberto no software grtis, mas sim aquele a que se tem acesso ao cdigo fonte para se alterar e distribuir livremente. O software de cdigo aberto teve origem na sociedade GNU (GNU is not UNIX) [14] que derivou da FSF (Free Software Foundation) [12], que estava descontente por o sistema operativo UNIX estar cada vez mais comercial e fechado. Ao longo dos anos, os membros do projecto GNU foram desenvolvendo vrios programas e utilitrios, para construir um ambiente capaz de substituir integralmente um sistema UNIX apenas com software livre. Da a necessidade de que o que fosse desenvolvido teria de ser compatvel com o UNIX. Dos programas desenvolvidos nessa poca, incluem-se compiladores (gcc), depuradores de erros, entre outros.

2.4 O Sistema UNIX


O Unix um sistema operativo portvel, multitarefa e multiutilizador criado por um grupo de programadores da AT&T e dos Laboratrios Bell, que incluem Ken Thompson, Dennis Ritchie e Douglas McIlroy. Em 1969, Ken Thompson, escreveu o primeiro sistema, o Unics, totalmente em Assembly e destinado a funcionar em minicomputadores chamados PDP-7. Baseado no anterior sistema operativo Multics (Multiplexed Information and Computing Service), pretendia-se que o Unics fosse um sistema de respostas rpidas para mquinas de pequeno porte. Mais tarde, Ken Thompson e Dennis Ritchie reescreveram o sistema em Assembly e deram-lhe o nome de UNIX e passou a ser usadas nas plataformas PDP-11 e PDP-20 (sucessoras da PDP-7). S em 1970 que o UNIX passou a ser escrito na nova linguagem C, criada na altura tambm por Dennis Ritchie.

9 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

As primeiras verses do UNIX foram utilizadas exclusivamente para o uso interno na AT&T, mas rapidamente surgiram novas entidades como universidades e centros de investigao, interessados pelo sistema. Como algumas das verses do UNIX so Open Source, isso foi extremamente importante para o seu crescimento, pois permitiu aos utilizadores modificar e adaptar o sistema de acordo com as suas necessidades. Da, terem sido desenvolvidas vrias extenses do UNIX e criados novos programas por pessoas do meio cientfico e acadmico, alguns desses programas livres, como o Free-BSD, outros proprietrios como o AIX ou HP-UX. Uma das entidades que se destacou mais neste campo foi a Universidade da Califrnia em Berkley, pois foram tantas as contribuies da sua comunidade acadmica que essas deram origem a uma nova variante do UNIX, o BSD (Berkeley Software Distribution), com uma verso livre (Free-BSD) e outra proprietria (BSD). Por outro lado, o MIT (Instituto Tecnolgico de Massachusetts) tambm fez uma contribuio de enorme relevncia, desenvolveu o sistema de janelas (X-Windows), que passou a oferecer interface grfica ao utilizador permitindo assim aos utilizadores manipular o sistema operativo de forma amigvel. Actualmente, UNIX (ou *NIX) o nome dado a uma grande famlia de sistemas operativos que partilham muitos dos conceitos dos sistemas UNIX originais, sendo todos eles desenvolvidos em torno de standards como o POSIX (Portable Operating System Interface) e outros. Alguns dos sistemas operativos UNIX actuais so: BSD (FreeBSD, OpenBSD e NetBSD), Solaris (anteriormente conhecido por SunOS), IRIX, AIX, HP-UX, Tru64, Linux (nas suas centenas de distribuies), e at o Mac OS X (baseado num kernel Mach BSD chamado Darwin). Existem bastantes sistemas operativos "padro UNIX", usados em: de telemveis a supercomputadores at relgios de pulso a sistemas de grande porte. Um sistema UNIX totalmente orientado a ficheiros, tudo nele so ficheiros. Os seus comandos so apenas ficheiros executveis, que so encontrados em lugares previsveis da sua rvore de directrios. O acesso aos ficheiros organizado atravs de propriedades e proteces. Toda a segurana do sistema reside na combinao 10 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

entre as propriedades e as proteces atribudas aos seus ficheiros e s suas contas de utilizador. 2.4.1 O Sistema Linux No incio dos anos 90, um jovem finlands chamado Linus Torvalds estava bastante insatisfeito com os sistemas operativos que existiam para PCs (Personal Computers), pois ou eram muito maus ou muito caros, de tal forma que era comum uma verso completa de UNIX custar mais de 1000 euros. Por esse motivo, Linus comeou a escrever o seu prprio sistema operativo. Deu-lhe o nome de Linux e publicou o seu cdigo-fonte na Internet. Cerca de uma semana depois j possua mais de uma centena de utilizadores, todos eles programadores, onde a maioria contribuiu para o sistema, com correco de erros, adio de novas funcionalidades e sugestes. Essas contribuies foram reunidas por ele com as suas, o que fez com que o Linux evolusse rapidamente. A sua evoluo foi tal, que ao possuir um conjunto de funcionalidades muito sofisticado, chegou ao nvel dos sistemas operativos comerciais. O Linux composto por um ncleo de sistema e vrios programas e utilitrios, inicialmente era necessrio instalar manualmente o ncleo do sistema operativo e aps isso, reunir todos os programas para o pr em funcionamento. Como essa tarefa era complicada, e que s pessoas com profundos conhecimentos do funcionamento interno do sistema a conseguiam executar, criaram-se as distribuies de Linux. As distribuies de Linux so constitudas por um ncleo e uma coleco de programas, servios e aplicaes, deviadamente pr-configuradas e prontas a utilizar. Algumas das distribuies mais conhecidas so a Red Hat [19], Fedora, Open Linux da Caldera, Suse, Debian, Mandrake, Ubuntu [26] e Knoppix de um conjunto alargado [9]. A configurao dos sistemas UNIX faz-se tradicionalmente por acesso linha de comando. No entanto, as dificuldades so vrias, nomeadamente o facto dos ficheiros de configurao serem bastante extensos torna-se bastante provvel que o administrador se engane, isto resultou numa tentativa de desenvolver sistemas de administrao grficos baseados em janelas, enunciadas anteriormente, e disponveis 11 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

nas vrias distribuies de Linux. Actualmente, para alm da linha de comandos, existem vrios ambientes grficos do tipo desktop, como o Gnome [13] e o KDE [15]. Os ambientes grficos no so to versteis como a linha de comandos mas so muito fceis de usar sem que o utilizador possua grandes conhecimentos de UNIX. 2.4.2 Funcionamento Geral do Linux O sistema operativo Linux, tal como o UNIX, um sistema multitarefa e mutiutilizador. Denomina-se de multiutilizador por poder ser usado por vrias pessoas ao mesmo tempo. Mas para isso ser possvel, tem de se permitir o acesso fsico de todos os utilizadores ao sistema. Um PC comum possui um monitor, um teclado e um rato ou seja, permite apenas o acesso de um utilizador ao sistema, por este motivo, antigamente resolvia-se a questo recorrendo ao uso de terminais, que consistiam num conjunto de teclado e monitor ligados ao computador central atravs de uma ligao por cabo srie. Recentemente os antigos terminais caram em desuso, e passaram a ser usados programas que simulam o seu funcionamento, ou seja, usam-se PCs para aceder aos sistemas remotos via cabo srie, modem, ou por ligaes em rede (Internet, etc) [16] e so usadas aplicaes emuladoras de terminal como por exemplo o PuTTY, para estabelecer sesses por Telnet ou SSH (Secure Shell) ao computador central. O facto do Linux ser um sistema multiutilizador significa que tem de ter mecanismos que impeam os utilizadores de interferirem no trabalho uns dos outros e de acederem a dados confidenciais que no lhes pertenam. Um dos mecanismos usados pelo sistema o recurso a sesses de trabalho. Sempre que um utilizador faz login no sistema iniciada uma nova sesso de trabalho, para isso tem de fornecer o seu nome (username) e senha (password) correctamente para ser autenticado pelo sistema. Durante a sua sesso de trabalho os utilizadores podem executar muitas tarefas, uma de cada vez, ou lanar vrias em simultneo, por este motivo que o Linux designado de sistema operativo multitarefa. Em Linux, as tarefas tm o nome de processos e em cada instante existem bastantes processos a correr no sistema. Os processos podem ser de dois tipos, iniciados pelos utilizadores ou lanados automaticamente pelo sistema, denominados daemons. Os daemons correm 12 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

normalmente em background1 e alguns so iniciados aquando do arraque do sistema. Os daemons tm muitas vezes o propsito de responder a pedidos de rede, actividade de hardware, ou a outros programas. Os daemons so assim responsveis por diversos servios do sistema operativo, por exemplo o syslogd o daemon que gere o log do sistema (system log). Os daemons tambm podem executar outros encargos, como executar tarefas em horrios pr-determinados (como o Cron2). Quando o utilizador termina o que tem a fazer deve terminar a sua sesso de trabalho fazendo logout. 2.4.3 Sistema de Ficheiros Tal como em Unix, em Linux muito importante perceber o sistema de ficheiros muito importante, pois cada aco no sistema implica a sua manipulao. A estrutura de directrios apresenta um formato em rvore, em que o directrio principal se chama root, pois a raz da rvore de directrios. A rvore de directrios est organizada de forma idntica ao organograma da Fig. 5.

Entende-se por daemons em background, os processos que so executados com baixa prioridade, necessitam de pouca ou nenhuma entrada e geram o mnimo de output. Normalmente requerem pouco CPU e memria e so executados sem a interaco do utilizador. Estes processos comunicam com outros programas de computador ou com outros computadores atravs da rede. 2 O Cron um programa que executa comandos agendados no sistema operativo UNIX ou no Linux. O Cron encarregar-se- de verificar a data e hora e determinar se existe ou no algum programa para ser executado. Caso exista ele execut-lo- na hora e data solicitada.

13 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 5 Organograma representativo do sistema de ficheiros Linux. De entre os directrios e ficheiros apresentados na Fig. 5, algumas so muito relevantes. Por exemplo: /bin Contm um conjunto mnimo de programas que so usados durante o

arranque do sistema. /boot Associado ao arranque do sistema. Contm um ficheiro com o ncleo

(kernel) do sistema operativo e vrios ficheiros auxiliares. /etc Muito importante na administrao de sistemas. Contm a maioria dos

ficheiros de configurao do SO. /home /root /tmp Directrio de trabalho dos utilizadores Directrio de trabalho do super-utilizador Directrio de ficheiros temporrios

Como foi descrito anteriormente, o sistema multiutilizador, implementando um conjunto de proteces que permitem definir regras de acesso ao contedo de cada ficheiro por parte de cada utilizador. Para simplificar a gesto de acessos, os utilizadores podem ser agrupados e dadas as permisses aos grupos. Cada utilizador possui um directrio dedicada chamada home directory, na qual pode guardar ficheiros com a informao que desejar. Por omisso, cada utilizador s tem 14 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

privilgios para modificar informao dentro do seu directrio. No entanto, como pertence a um grupo, herda a suas permisses no sistema. Existe um utilizador especial chamado root que possui privilgios de administrao e tem acesso a todos os ficheiros do sistema, incluindo os que pertencem a outros utilizadores. O login do super-utilizador root, sendo sinnimo de que controla toda a rvore de directrios do sistema. No entanto, fazer login como root desaconselhado pois este utilizador possui privilgios totais sobre o sistema e, de forma inadvertida, poder executar-se algum comando que possa implicar a perda de informao. Por sua vez, ao usar contas normais, estas no tm privilgios para alterar o sistema, e assim garantem um maior grau de segurana. Um exemplo disso a propagao de vrus informticos, que so programas que realizam tarefas indesejveis sem que o utilizador se aperceba. Assim se um utilizador estiver ligado ao sistema por uma conta normal e executar um programa contendo vrus, esse no se propagar por outros programas, pois o tipo de conta no possui privilgios para manipular muitos dos ficheiros de sistema. por esse motivo que no se conhecem muitos vrus para Linux e diz-se que o sistema virtualmente imune a vrus, pois com as devidas precaues eles tero dificuldade em se propagarem. Uma das caractersticas que mais notabilizam o Linux foi o facto de ser dos primeiros sistemas operativos a integrar TCP/IP (Transmission Control Protocol / Internet Protocol). Da conseguir trabalhar perfeitamente com os sistemas operativos que tambm o usem como protocolo de comunicao, como o caso do Windows da Microsoft. O protocolo de comunicao mais usado no Linux o TCP/IP. Na realidade, como o Linux deriva de sistemas UNIX, que desde o incio integraram o TCP/IP no seu ncleo, este acabou tambm por herdar essa implementao, o que contribuiu bastante para a sua evoluo. Da, a lista de comandos oferecida pelo Linux para comunicar pela rede ser muito vasta, comeando pelos simples programas de transferncia de ficheiros, passando pelo acesso e controlo de sistemas remotos, at aos programas de comunicao com outros utilizadores.

15 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

2.4.4 Manipulao de volumes de dados Embora o Linux possua uma rvore de directrios nica, permite utilizar muitos volumes de dados em simultneo. Por exemplo, a maneira como o sistema gere os diferentes discos ou as parties dos discos. Para poder utilizar vrios volumes simultaneamente, houve a necessidade de criar uma tcnica para aceder a cada um deles, sem o risco de confuses. Foram usados os mount-points onde, cada volume fica associado (montado) a um determinado directrio. Desta forma, o componente fsico fica associado ao sistema de ficheiros podendo ser acedido a partir deste. O comando que permite montar um volume de dados a um determinado directrio chama-se mount. A sintaxe do mount a seguinte:
mount <volume><directrio a associar> -t <tipo de filesystem(ext2/ msdos/)>

Note-se que o directrio a associar deve ser criada antes do mount. Contrariamente ao comando mount existe um comando para desfazer a associao do volume ao directrio, esse comando o umount. O comando mount (sem parmetros), apenas fornece informao acerca dos volumes de dados presentes no sistema. Para determinar o espao ocupado e o espao livre em cada volume tem de se recorrer aos comandos df (disk-free) e du (diskusage). O comando df mostra todos filesystems montados e o espao total do respectivo volume, medido em blocos de 1 Kb. Assim, obtm-se a informao acerca do espao usado (em blocos e em percentagem) e do espao que ainda est disponvel em cada volume. Por outro lado, o comando du mostra apenas o espao em disco ocupado por um ficheiro ou um subdirectrio inteiro. 2.4.5 Shell A shell o nome que se d ao interpretador de comandos dos sistemas UNIX e do Linux. Existem vrios tipos de shell, sendo a mais conhecida a sh que um clone da primeira shell (Bourne Shell) desenvolvida na primeira verso do UNIX. Tambm 16 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

existe a bash (Bourne Again Shell) que substitui inteiramente a sh, da o ficheiro /etc/sh ser apenas um link para o ficheiro /etc/bash. Existem ainda outras shells como a csh, com estruturas de controlo semelhantes linguagem C, ksh (korn shell) e ash entre outras. Cada utilizador pode escolher a sua shell favorita, que sempre lanada pelo sistema logo que o utilizador faa login. Essa escolha feita pelo administrador quando cria as contas de utilizador mas este pode modificar a sua shell atravs do comando chsh (change shell). Associado a um ambiente de trabalho (shell) existem vrias variveis que podero ser utilizadas pelo sistema operativo nas vrias aces que o utilizador desencadear. Uma dessas variveis o PATH, que inclui os directrios onde o sistema operativo tentar encontrar os comandos executados na shell. Assim, um novo comando que seja executado ser procurado nos directrios representadas por esta varivel. Pelo conjunto de caractersticas enunciadas nesta seco, o Linux tornou-se num dos melhores sistemas operativos em termos de fiabilidade, uptime, segurana, gesto de memria e processador e mais recentemente de uso fcil e prtico.

2.5 O Administrador de Sistemas


O Administrador de Sistemas responsvel pela instalao, manuteno e administrao de sistemas, assim como da infra-estrutura informtica que os suporta. Se possvel deve colaborar com os fornecedores durante a fase de instalao e manuteno de todos os produtos e servios. da sua responsabilidade criar a configurao mais adequada s necessidades de cada empresa e tenta fazer sempre uma correcta utilizao de todos os recursos disponveis, sem esquecer os diferentes utilizadores. Estas funes so mais vastas do que primeira vista pode parecer e, nesse sentido, o administrador dever procurar criar medidas para o funcionamento e manuteno dos sistemas, assim como dos respectivos procedimentos de proteco.

17 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

A primeira responsabilidade de um administrador permitir que os utilizadores do seu sistema possam desenvolver as suas actividades com produtividade. A administrao de sistemas no consiste em apenas instalar sistemas operativos. necessrio planear e desenhar uma rede lgica e eficiente, considerarando que as mquinas tero de ser actualizadas relativamente rpido, decidindo quais os servios necessrios e as polticas de segurana a implementar, entre outros. Alguns administradores de sistemas so responsveis por todo o hardware de rede e pelos computadores enquanto outros so apenas responsveis pelos computadores. De qualquer maneira tm de compreender qual a informao que circula entre as mquinas, para saberem como que uma mquina pode afectar outra. Pois, a partir do momento em que um computador est ligado em rede, parte integrante de uma sociedade de mquinas que comunicam e partilham recursos entre si, ou seja, necessrio ter presente que tanto um computador pode afectar os restantes, como ser afectado por estes. Assim, o administrador o responsvel pela conduta da sua organizao para com a Internet, e pelas condutas maliciosas vindas da Internet que porventura afectam o seu sistema. Ao trabalhar no sector das tecnologias da informao, o primeiro requisito bsico que se pede a este profissional uma constante formao contnua, a fim de estar consciente das ltimas novidades do mercado. igualmente pretendida uma grande competncia ao nvel de organizao, elevada capacidade de interaco com os utilizadores, gosto pelo trabalho em equipa, e facilidade de comunicao. Em certas situaes necessrio ser inventivo e conhecer bem o funcionamento dos computadores para resolver os problemas em tempo til e da melhor maneira. Isso requer organizao e metodologia para obter solues robustas que funcionem. Para alm destes requisitos, fundamental que um Administrador de Sistemas tenha um forte domnio da lngua inglesa (falada e escrita), pois a melhor documentao desta rea (standards, livros, manuais de boas prticas) encontra-se geralmente em ingls, disponibilidade para deslocaes aos principais clientes, motivao para a inovao e iniciativa.

18 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Para esta rea, existe uma grande oferta em termos de cursos universitrios, quer de bacharelatos quer de licenciaturas: Cincias da Computao, Engenharia Informtica, Engenharia Informtica e Comunicaes, Engenharia Informtica de Gesto, Informtica, Informtica de Gesto, entre outros [11].

2.6 Administrao de Sistemas Linux


Com a evoluo dos sistemas de informao, as instituies passaram a ter redes constitudas por vrios computadores de diferentes arquitecturas e sistemas operativos. A diversidade de servios de rede e aplicaes tambm aumentou, tornando as redes heterogneas, escalveis e abrangentes. A diversidade de recursos (PCs, servidores, aplicaes e sistemas operativos) e a necessidade da sua interligao na rede, tornou indispensvel uma infra-estrutura de administrao e gesto, com vista garantia dos servios aos utilizadores finais.

Fig 6 Recursos administrados pela rea de administrao de sistemas e redes.

A Fig 6 ilustra os diversos recursos que necessrio administrar numa organizao que assente o seu negcio num sistema de informao. O projecto desenvolvido centrou-se na anlise de utilitrios de administrao que permitem uma gesto centralizada destes recursos numa rede UNIX heterognea. 19 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Com a Internet a administrao de sistemas sofreu alteraes significativas. Devido crescente complexidade das redes e ao problema de intruso nas mesmas, os administradores tiveram de se adaptar, actualizando conceitos e boas prticas de administrao e documentando melhor as suas tarefas, para posteriormente resolver problemas semelhantes com eficcia. neste conceito que se integra a administrao de sistemas Linux. Com o seu carcter Open Source, o sistema operativo Linux recebe as mais diversas contribuies e actualmente a implementao Unix mais verstil, suportando as mais diversas possibilidades de configurao e integrao. Como administrar sistemas Linux um desafio significativo, por uma questo de metodologia, a administrao de um sistema operativo, pode ser dividida nas seguintes reas distintas: Administrao de utilizadores criar e modificar as definies relacionadas com os utilizadores do sistema, nomeadamente a identificao interna, nome de utilizador, senha de acesso e grupos a que pertence. Administrao de sistema de ficheiros gerir o sistema de ficheiros, integrando diversos ficheiros. Administrao de software gerir as aplicaes disponveis no sistema, a maioria das aplicaes destinam-se aos utilizadores, mas por exemplo, podem tambm servir para a implementao de servios. Administrao de servios gerir servios, com especial destaque para os servios de rede. suportes fsicos e gerir as permisses dos utilizadores sobre os

Na realidade todas estas reas esto relacionadas entre si. Ou seja, uma determinada tarefa implica normalmente a utilizao de aces nas categorias apresentadas. A configurao de um determinado recurso no sistema operativo implica normalmente a execuo de vrios passos e a configurao de outros recursos associados. Para melhor ilustrar este efeito, tome-se como exemplo a criao de um novo utilizador no sistema. A Fig. 7 ilustra os passos associados a esta operao, onde 20 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

visvel o vasto conjunto de operaes que necessrio desencadear: os ficheiros envolvidos, a complexidade e susceptibilidade de erros para o administrador. Este exemplo ser utilizado ao longo dos vrios captulos para evidenciar as diferentes abordagens de administrao.

Fig. 7 Passos para a criao de um novo utilizador Nesta figura mostrado quais os passos necessrio para criar contas de utilizadores em Linux. Para se criarem vrias contas em vrias mquinas, boa prtica possuir num ou em dois ficheiros separados os dados das contas de utilizadores (nome, password encriptada preferencialmente, grupo, data de expirao, etc...) e os dados dos computadores (endereo IP, entre outros que se considerem necessrios). No entanto, para a criao de um novo utilizador, o primeiro passo confrontar o ficheiro de utilizadores e ver se esse utilizador consta ou no, se no constar dever-se- ler os dados do mesmo e cri-lo, de seguida verificar se o seu grupo existe ou no, no caso 21 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

de no existir necessrio cri-lo e adicionar o utilizador a esse grupo. Posteriormente necessrio encriptar a password e adicion-la no ficheiro de passwords encriptadas, assim como criar a home directory do utilizador e mudar-lhe o dono para o utilizador em questo. O ltimo passo que permite configurar determinadas configuraes como a shell a usar consiste em copiar o contedo do directrio /etc/skel para dentro da home directory do utilizador. Facilmente se constata que este procedimento pode originar erros humanos e no vivel e prtico executar isoladamente estas tarefas. Numa situao em que haja vrios utilizadores para criar, o problema ainda mais acentuado. Desse modo, necessrio que o administrador disponha de meios para automatizar as tarefas, nomeadamente recorrendo a linguagens de scripting. De seguida apresentam-se as vrias alternativas existentes para a criao de um utilizador num sistema UNIX.

2.6.1 Por linha de comando Qualquer sistema multi-utilizador tem de manter uma base de dados de utilizadores, onde existe um registo para cada utilizador. Cada utilizador tem diversas propriedades associadas a si. Para gerir os utilizadores e todo o sistema em geral existe um "superutilizador" cujo username root e deve ser sempre configurado aquando da instalao do sistema operativo. Nos sistemas Unix os utilizadores esto definidos no ficheiro /etc/passwd. Neste ficheiro de texto cada linha corresponde a um utilizador, com uma sequncia de campos, separados por dois pontos, onde todos os campos so obrigatrios, mas alguns podem estar vazios. O Exemplo 1 ilustra 4 linhas (4 utilizadores) do ficheiro /etc/passwd:

root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin

22 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

adm:x:3:4:adm:/var/adm:/sbin/nologin

Exemplo 1 Extracto do ficheiro/etc/passwd

Grupos de utilizadores A definio de grupos de utilizadores muito vantajosa sob o ponto de vista de administrao porque quando se pretende atribuir a muitos utilizadores um dado direito (permisso) possvel atribuir esse direito ao grupo, fazendo assim que todos os utilizadores que so membros do grupo passem tambm a usufruir desse direito. Nos sistemas Unix os grupos esto definidos no ficheiro /etc/group, este ficheiro tem uma estrutura semelhante do /etc/passwd. Se existir um grupo chamado root, ao serem colocados utilizadores nesse grupo, eles passaro a ter muitos dos direitos que o administrador possui sobre objectos do sistema, j que este o grupo primrio do administrador. Como se pode ver abaixo no Exemplo 2, os utilizadores sysadmin e tester pertencem ao grupo root e adm respectivamente.
root:x:0:sysadmin daemon:x:1: bin:x:2: sys:x:3: adm:x:4:tester:

Exemplo 2 Extracto do ficheiro /etc/group. Ficheiro de Passwords Cifradas Em algumas distribuies existe o ficheiro /etc/shadow que guarda as passwords cifradas. Um dos problemas suscitados pelo ficheiro /etc/passwd o facto de ser acessvel por todos os utilizadores.

23 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Uma vez que o HASH3 da password consta no ficheiro, torna-se possvel com um programa adequado obter a password atravs do HASH, ou no caso da password ser fraca, atravs de um gerador de passwords baseado no dicionrio, a senha facilmente decifrada. Seja como for, o acesso aos hash das passwords dos utilizadores claramente um ponto fraco, o processo de tentativa de autenticao que deveria ser controlado pelo sistema (controlando o nmero mximo de tentativas e o atraso entre tentativas) pode ser simulado por outro sistema, basta para isso que o hash que consta no /etc/passwd seja copiado. Para resolver este problema de segurana h a possibilidade de utilizar um ficheiro sombra para armazenar os hash das passwords, este ficheiro o /etc/shadow, mas ao contrrio do ficheiro /etc/passwd apenas legvel pelo utilizador root, pois tem permisses 600, o que significa, que apenas o root tem permisso de leitura e no visvel por todos, ao contrrio do /etc/passwd. A relao entre estes trs ficheiros demonstrada na Fig. 8, onde se pode ver o nmero de registos de um determinado utilizador nos trs ficheiros,

Fig. 8 Diagrama Entidade-Relacionamento entre os 3 ficheiros De seguida apresentado o exemplo de adio de um utilizador, que ser visto por diferentes perspectivas de administrao. A Fig. 9, representa um fluxograma que demonstra de forma sucinta todo o processo. Este diagrama geral pretende servir de ponto de partida de um conjunto de exemplos de adio de um utilizador ao sistema, usando processos mais morosos e complexos, bem como outros tendencialmente mais amigveis.

Entede-se por HASH uma sequncia de letras e/ou nmeros geradas por um algoritmo criptogrfico.

24 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Inserir linha do utilizador no ficheiro /etc/passwd Sintaxe da linha Username:Password:uid:gid:homedirectory:bash

Criar a directoria de trabalho do utilizador Mkdir /home/utilizador

Inserir linha do grupo no ficheiro /etc/group Sintaxe da linha Nome do grupo:password do grupo:gid:lista utilizadores pertencentes ao grupo

Copiar os ficheiros da /etc/skel para a directoria de trabalho cp -R /etc/skel/. /home/utilizador

Mudar o dono da directoria de trabalho Comando chown

Se existir ficheiro /etc/ shadow

Atribuir permisses a directoria de trabalho Chmod 644 /home/utilizador

Encriptar a password

Fim de criao do utilizador

Inserir linha do utilizador no ficheiro /etc/ shadow Sintaxe da linha Username:password encriptada:data ultima mudana da password:numero de dias para se poder alterar password:numero de dias para se ter de alterar password

Fig. 9 Processo de insero um utilizador pela linha de comando. Deste modo, o processo de criao de um utilizador (uma das tarefas mais rotineiras de administrao de um sistema) por linha de comando, tem campos extensos, que para alm de no garantir boa performance, pois actuam apenas sobre uma mquina, tornam-se bastante morosos e susceptveis de erros humanos. Embora as operaes envolvidas na criao de um utilizador sejam similares, os comandos para as executar podem variar entre distribuies de sistemas operativos LINUX, dificultando ainda mais a tarefa do administrador de sistemas. Felizmente existem comandos que facilitam um pouco este processo, como o caso do useradd e adduser, includos nalgumas distribuies de LINUX. Este tipo de comandos permite adicionar um utilizador de maneira mais fcil. Em primeiro lugar, 25 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

estes programas so desenvolvidos para cada distribuio em particular. Em segundo, abstraem o administrador das operaes envolvidas em cada um dos passos. Por fim, as alteraes necessrias criao do utilizador so efectuadas em todos os ficheiros envolvidos, de forma automtica e inequvoca. O comando passwd permite alterar a password de um dado utilizador. No entanto, os programas apresentados so ainda solues pouco escalveis. Por exemplo, supondo que se pretende adicionar um nmero elevado de novos utilizadores no sistema e que estes tenham de se autenticar em qualquer uma das mquinas da rede, tero de ser usadas outras formas de assegurar esta operao. Uma soluo possvel o desenvolvimento de scripts que permitam automatizar esta tarefa de administrao para vrios utilizadores e as vrias mquinas. 2.6.2 Por scripts Um script um ficheiro que contm instrues de uma linguagem interpretada. Como um bloco no compilado, necessita de programas interpretadores que interpretem as linhas em tempo de execuo, reunindo assim, um conjunto de comandos que permitem efectuar vrias tarefas. A interpretao dos comandos poder realizar-se com recurso a linguagens prprias (p.e. o Perl) ou atravs da shell do sistema operativo. Os scripts podem ser editados em vrios editores de texto disponveis, como o emacs ou vi. Alguns possuem mesmo os modos de edio para vrias linguagens de programao de scripting, como o Perl (seco 2.6.2.3) ou o Phyton (seco 2.6.2.4). Um administrador de rede, tem a necessidade de desenvolver scripts para assim poder automatizar determinadas tarefas repetitivas. No desenvolvimento destes scripts, surge muitas vezes a necessidade de manipular ficheiros de texto, em que o uso de expresses regulares, tem um papel muito importante. necessrio compreender o funcionamento das expresses regulares e dos operadores e funes que as manipulam. Em Perl, isso fundamental para uma programao rpida e eficiente nessa linguagem extremamente flexvel e produtiva. Uma expresso regular pode ser classificada como uma regra que permite descrever, precisamente, todos os 26 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

elementos de um conjunto, seja este, finito ou infinito, sem a necessidade de enumerlo explicitamente. Por exemplo, a expresso regular ^0-9$ descreve os algarismos de 0 a 9 e a expresso ^a-zA-Z$, as letras maisculas e minsculas do alfabeto, incluindo os caracteres k, w, y. Associado ao conceito de expresses regulares, surge o conceito de metacaracter, pois aquelas so constitudas por caracteres e metacaracteres. Os caracteres descrevem elementos explcitos enquanto que os metacaracteres descrevem elementos implcitos e as condies em que esses elementos ocorrem dentro de um conjunto. Nos exemplos anteriores os metacaracteres so ^, , $, onde o acento circunflexo representa que a seguir a este surge o primeiro caracter que se quer encontrar, o trao define um intervalo e o cifro significa que a string que se procura termina pelos caracteres definidos antes dele. Portanto, uma expresso regular um mtodo formal de se especificar um padro de texto. uma composio de caracteres e metacaracteres que agrupados entre si, formam uma expresso. Essa expresso testada em textos, e retorna sucesso caso esse texto obedea exactamente a todas as suas condies. Existem vrios tipos de metacaracteres, na Tabela 1 sero descritas as funcionalidades de alguns.
Metacaracter ^ $ [abc] [a-c] [^abc] (root|bin) a{2} a{2,4} a{2,} a? a* a+ . Definio Circunflexo Cifro Lista Lista Lista negada Ou Chavetas Chavetas Chavetas Interrogao Asterisco Mais Ponto Descrio de funcionamento Representa o incio da linha Representa o fim da linha Faz coincidir com as letras a ou b ou c Faz coincidir com as letras a ou b ou c Faz coincidir qualquer caracter excepto a, b e Faz coincidir com as palavras root ou bin Faz coincidir com a letra a duas vezes Faz coincidir com a letra a de duas a quatro vezes Faz coincidir a letra a no mnimo duas vezes Faz coincidir a letra a nenhuma ou uma vez Faz coincidir a letra a nenhuma ou mais vezes Faz coincidir a letra a uma ou mais vezes Faz coincidir com um carcter qualquer

27 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

.*

Ponto e Asterisco

Faz coincidir com qualquer coisa

Tabela 1 Tabela representativa do funcionamento dos metacaracteres. O Exemplo 3 ilustra a utilizao de expresses regulares num excerto de cdigo Perl.
#!/usr/bin/perl @Admin = ("SOs", "Impressoras", Utilizadores", "New_Packages", "scripts"); for(@Cidades) { if(/[IS]/) # Todos os recursos que contenham 'I' ou 'S' { print "O recurso ", $_, " corresponde ao modelo de busca\n"; } } Resultado: Impressoras e SOs

Exemplo 3 Aplicao de expresses regulares em Perl. Assim, com o apoio das expresses regulares possvel obter melhores pesquisas, alcanando padres e posies impossveis de se especificar usando apenas caracteres normais. Pelas suas comprovadas qualidades, so utilizadas frequentemente por diversos programas como o grep, sed, awk, vi, Apache e Squid e por vrias linguagens de programao, como o C, Python, Perl, PHP e Java.

2.6.2.1 AWK uma linguagem de programao criada por Alfred V. Aho, Peter J. Weinberger e Brian W. Kernighan para processamento de dados baseados em texto, sejam eles provenientes de ficheiros ou de streams de dados. Esta linguagem de programao usa o tipo de dado String ou arrays associativos (arrays indexados por palavra chave) e expresses regulares. Com o AWK possvel gerir pequenas bases de dados pessoais, gerar relatrios, validar dados, produzir ndices e executar outras tarefas em documentos de texto.

28 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

uma linguagem bastante acessvel com uma sintaxe familiar, graas aos seus blocos de cdigo agrupados em comandos. As funes bsicas do AWK so a procura de um determinado padro em linhas (ou outras unidades de texto) de ficheiros. Para cada padro deve haver uma aco associada, ou seja, quando uma linha corresponde a um dos padres, o AWK realiza a aco especificada naquela linha. De seguida, o AWK continua a processar as linhas de entrada, at encontrar o fim do ficheiro que est a processar. O conjunto de comandos pode aparecer literalmente como um programa ou num ficheiro especfico com a opo f. Programas em AWK so diferentes dos programas na maioria das outras linguagens porque so data-driven, isto , deve-se descrever os dados com os quais se quer trabalhar, e o que fazer quando os encontramos. Em outras linguagens procedimentais, normalmente mais difcil descrever claramente os dados que o programa ir processar. Por isso, os programas AWK so mais fceis de ler e escrever. O programa AWK um conjunto de regras, onde para cada uma especificado um padro que deve ser procurado e uma aco que deve ser tomada quando o padro for encontrado. Sintacticamente, uma regra consiste num padro seguido de uma aco que deve estar entre chavetas. Cada regra ser separada por uma nova linha. Ento a estrutura um programa AWK ser apresentado no Exemplo 4.
<Padro1> {<Aco1>} <Padro2> {<Aco2>} <PadroN> {<AcoN>}

Exemplo 4 Sintaxe do AWK. Existem vrias maneiras de executar um programa AWK:

Quando o programa pequeno mais fcil inclu-lo no comando de execuo. Por exemplo:
awk '{ print }' <FicheiroEntrada>

29 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

O resultado deste comando a apresentao no ecr das linhas do ficheiro de entrada. Este formato de comando instrui a shell ou interpretador de comandos, a iniciar o AWK e usar o programa; que neste caso o print, para processar registos nos ficheiros de entrada. As aspas simples, em torno do print instruem a shell para no interpretar os caracteres AWK como caracteres especiais da shell e tratar todo o programa, como nico argumento para AWK permitindo que este tenha mais do que uma linha.

possvel executar o AWK sem ficheiros de entrada. Neste caso quando se digita a linha de comando awk <programa> o awk aplica o programa entrada padro o que significa que tudo o que for escrito no terminal at que seja pressionado CTRL+d vai ser tratado pelo programa. Por exemplo awk {print}, se escrever ol e seguidamente pressionar CTRL+d ele ir escrever ol novamente. Tratando-se de um programa extenso mais conveniente coloc-lo num ficheiro e execut-lo da seguinte forma: awk -f<FicheiroPrograma> <FicheiroEntrada1>< FicheiroEntradaN > Exemplo de aplicao do AWK:
contaUtilizadores.awk #!/bin/awk -f BEGIN {FS=":";i=0} { if (($0 !~ /#/)&&($0 !~ /$^/)&&($0 ~/:/)){ print $1; i++; } } END { print "Fim do Ficheiro /etc/passwd, contem",i,"Utilizadores!!!"; }

Exemplo 5 Exemplo de aplicao do AWK. 30 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

A execuo da linha awk fcontaUtilizadores /etc/passwd, despoleta as seguintes operaes:


1. percorre o ficheiro /etc/passwd linha a linha, considerando o separador de

campos : como est indicado no programa acima referido.


2. imprime o primeiro campo que o nome do utilizador e no final escreve o

nmero de utilizadores existentes. O AWK tanto pode ser usado embutido noutros programas como em executveis AWK Relativamente aos programas executveis necessrio incluir no incio do programa a indicao de como que o ficheiro ser interpretado. Por exemplo, colocando no incio do ficheiro o comando #!/bin/awk f, como vimos no exemplo acima. Como o Awk funciona com a sintaxe <padro> <aco>, seguem-se alguns exemplos. Um padro pode ter uma das seguintes formas:
/expresso regular/ -- satisfeita se o registo possuir uma cadeia de caracteres que satisfaa a expresso. expresso relacional -- comparaes. PADRO && PADRO -- condio `e'. PADRO || PADRO -- condio `ou'. PADRO ? PADRO : PADRO Operador ternrio ! PADRO -- negao do padro. PADRO1,PADRO2 -- A condio satisfeita desde o primeiro registo que satisfaa o PADRO1 at o registo que satisfaa PADRO2. BEGIN -- Aplicado antes de ser lido o primeiro registo. END - Aplicado aps a leitura do ltimo registo (final).

As aces so basicamente expresses parecidas com as de C, acrescidas dos seguintes operadores:


** e ^ -- exponenciao. ~ -- matching de expresso regular !~ -- negao do matching

31 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

in -- inseridos em vectores

Para alm destes, o espao em branco usado para concatenar strings. As aces so agrupadas entre {}, que por sua vez so obrigatrios. Seguem-se alguns exemplos:
awk '/^[AEIOUaeiou]/ -- imprime todas as linhas que comeam com uma vogal. awk '$2 > $1' -- linhas cuja segunda palavra maior (numrica ou lexicamente) do que a primeira. A comparao ser numrica se ambas palavras tiverem representao numrica. awk '/^[a-zA-Z]+ +[0-9]+ +x +[0-9]+ +[a-zA-Z]+/ && $2>$4' -Resultados de jogos onde o primeira aquipa venceu (o nome da equipa no pode ter espaos). awk '/^[0-9]/ || $2 > 3$' -- comeando por um dgito ou com o segundo campo maior do que o terceiro.

Alm das variveis normais, podem ser utilizados vectores. Os vectores em AWK tm a vantagem de os seus ndices serem cadeias de caracteres (vectores indexados). Outro exemplo (a varivel especial NF contm o nmero de campos no registo corrente:
# frequncia de palavras { for (i = 1; i <= NF; i++) freq[$i]++ }

END { for (word in freq) printf "%s\t%d\n", word, freq[word] }

Os comandos de entrada e sada de dados so os seguintes:


getline -- l a prxima linha. getline <FILE> -- l a prxima linha do ficheiro FILE (no precisa ser

aberto). 32 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

getline VAR -- l a prxima linha que tenha VAR. COMANDO | getline -- l da sada padro do programa COMANDO (via pipe). next -- salta imediatamente para o prximo registo. nextfile -- salta imediatamente para o prximo ficheiro (quando vrios so

apresentados na linha de comando).


print ... -- o default $0, imprime uma linha em branco.

Os comandos print tambm tm uma verso printf, ou seja o print formatado. Na Tabela 2 so apresentadas algumas vriveis e funes especiais do AWK
Variveis FILENAME NF NR RS OFS ORS ARGC, ARGV ENVIRON ERRNO FS FNR Funes gsub(REGEX, index(STR, match(STR, Length([STR]) split(STR, substituio de expresses regulares devolve a posio de SEARCH em STR. A procura NO por Procura por expresses regulares. RSTART possui a posio inicial comprimento da cadeia (ou do registo corrente) ficheiro actual. nmero de campos do registo actual nmero de registos lidos at o momento separador de registos. Normalmente o final da linha, mas pode ser separador dos campos de sada separador de registros de sada descritores de parmetros de chamada vector que contm todas as variveis do ambiente nmero do erro ocorrido na ltima chamada ao sistema separador de campos de entrada. Normalmente so espaos, mas nmero de registos lidos no ficheiro actual

ARR quebra a STR em vrios campos, que so colocados em ARR, de

Tabela 2 Tabela de variveis e funes do AWK.

33 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Embora o AWK seja uma ferramenta poderosssima, no a nica, h um conjunto de outras linguagens de scripting que associadas entre si auxiliam o administrador a gerir o seu sistema.

2.6.2.2 SED O SED outra das linguagens de scripting e significa Stream EDitor ou editor de fluxo. uma linguagem muito utilizada nos sistemas Unix e, ao contrrio dos editores convencionais, o SED actua em linha de comando ou em shell script. Uma das caractersticas principais poder editar ficheiros automaticamente. Assim, sempre que for necessrio fazer alteraes sistemticas em vrios ficheiros, o SED uma soluo eficaz, pois tambm aceita expresses regulares, o que lhe confere maior poder, sendo uma excelente ferramenta para administradores de sistemas, nomeadamente para a construo de scripts de administrao que envolvam a manipulao de ficheiros. O SED trabalha com o conceito de endereo. Um endereo no um comando mas sim o seu contexto, correspondendo ao elemento que diz exactamente em que linhas um comando ou um bloco de comandos deve ser aplicado. Assim, quando se programa em SED, um comando refere-se ao que se quer fazer, enquanto o endereo refere-se onde se quer fazer, ou seja onde se quer executar o comando. O endereo to simples, quanto a tarefa que se quer desempenhar. No SED indispensvel um endereo correcto para que o comando seja aplicado no stio certo. Assim torna-se necessrio que o programador ao escrever um comando SED especifique o endereo exacto e sem ambiguidades. Existem trs tipos de endereos: Endereo pelo nmero da linha quando se quer referir a uma determinada linha. Endereo pelo contedo da linha se quer referir a linha que contm qualquer sequncia de caracteres Endereo mltiplo, que abrange mais de uma linha Quando se quer as linhas que esto entre a linha X e Y 34 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Para tornar mais clara a forma de funcionamento do SED sero dados alguns exemplos do seu funcionamento. Enderear pelo nmero de linha
sed 5 d /etc/passwd

Com este comando apaga-se a quinta linha do ficheiro /etc/passwd. Enderear uma linha que contm uma determinada palavra
d /etc/passwd sed /root/

Com este comando apaga-se a linha que contm a palavra root. Aplicar vrios endereos no mesmo comando
p;}/etc/passwd sed /root/{p; p;

Com este comando acrescenta-se mais 3 linhas iguais linha que contm a palavra
root.

Enderear um bloco entre duas linhas

sed 5,10 d /etc/passwd

Com este comando apaga-se desde a linha 5 linha 10. Extrair a 4 linha do ficheiro
cat ficheiro.txt | sed '4q;d' cat

Efectuar substituies de texto (substituir as vrgulas [,] por hfens[-])


ficheiro.txt | sed 's/,/-/g'

Manipular apenas o endereo de retorno

nslookup a.root-servers.net

| tail -n 1 | sed s/Address:\ \ \ \ /

Existem trs reas principais de aplicao do SED: 1. editar ficheiros longos de modo amigvel; 2. editar um ficheiro, qualquer que seja o seu tamanho, quando a sua sequncia de comandos complicada para ser editada de modo normal; 3. executar funes de edio de texto atravs comando inserido;

A seguir apresenta-se um exemplo de aplicao do SED para pesquisar se existe algum utilizador sem senha no /etc/passwd.
prompt> sed -n '/^[^:]\+::/p' /etc/passwd

35 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Em primeiro lugar, os campos no ficheiro /etc/passwd esto divididos pelo caracter :. A linha acima procura a partir do incio da linha, o primeiro caracter : e a partir desse se encontra dois caracteres : seguidos, o que representa que a password no consta na linha.

Entretanto, com o surgimento do PERL, o uso do SED diminuiu drasticamente. Assim, o poder, a conciso e as limitaes dos programas feitos em AWK e dos scripts SED inspiraram Larry Wall a criar a linguagem PERL. 2.6.2.3 PERL O PERL (Pratical Extraction and Report Language) [17] uma linguagem de extrao e elaborao de relatrios e foi criada em Dezembro de 1987 por Larry Wall. O PERL integra os conceitos e fundamentos da shell scripting, do AWK e da linguagem C, estando disponvel em praticamente todos os sistemas operativos. usado regularmente em sistemas UNIX e compatveis com este. Trata-se de uma das linguagens preferidas pelos administradores de sistemas e programadores de aplicaes para a Web, devido sua versatilidade no processamento de cadeias de caracteres (strings), manipulao de texto e no reconhecimento de padres implementado atravs de expresses regulares, alm de permitir cdigo compacto com diversas operaes. Em geral, a sintaxe de um programa em Perl parece-se muito com a de um programa em C: existem variveis, expresses, atribuies, blocos de cdigo delimitados, estruturas de controlo e sub-rotinas. Para alm disso, o Perl foi bastante influenciado pelas linguagens de shell script, sendo todas as variveis precedidas pelo smbolo $. O cifro permite identificar perfeitamente as variveis num programa, onde quer que elas estejam. Um dos melhores exemplos da utilidade desse recurso a alterao de variveis directamente no contedo de strings. O Perl tambm possui muitas funes integradas para tarefas comuns como ordenao e acesso de ficheiros em disco. O Perl utiliza o conceito de listas da linguagem LISP [1] Active Perl, (http://www.activestate.com/Perl.plex)

36 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

[2], os arrays associativas (tabelas hash) do AWK e as expresses regulares do SED. Isto tudo simplifica e facilita qualquer forma de interpretao e tratamentos de textos e dados em geral. A linguagem suporta estruturas de dados arbitrariamente complexas, possuindo recursos vindos da programao funcional e um modelo de programao orientada por objectos. O Perl devido s suas caractersticas permite a escrita de cdigo robusto e modularizado. Todas as verses de Perl possuem gesto de memria automtica. Os tipos e necessidades de cada objecto de dados no programa so determinados automaticamente; a memria alocada ou libertada de acordo com o necessrio. Algumas das caractersticas do PERL: Clareza e Simplicidade Para programadores com conhecimentos de C, AWK e sh muito fcil aprender Perl. Para alm disso, como uma linguagem interpretada e a sua sintaxe clara, pode-se seguir o ciclo escrever/provar muito rapidamente, facilitando a aprendizagem. Portabilidade O Perl geralmente portvel. O mesmo cdigo pode ser levado de uma arquitectura para outra sem problemas. No entanto, existem algumas funcionalidades que so dependentes da plataforma como o ordenamento dos bytes, ficheiros, saltos de linha e outros. O Perl existe em Unix (AIX, BSD/OS, dgux, DYNIX/ptx, FreeBSD, Linux, HP-UX, IRIX, MacOS X, MACHTen PPC, NeXT 3 e 4, OpenBSD, OSF1, SCO, SINIX, Unicos, Solaris, SunOS,...), DOS (MS-DOS, PC-DOS, OS/2, Windows 95/98/XP, Windows NT, CygWin,...), Mac OS, VMS, VOS, RISC OS, Amiga, Atari, BeOS, Novell Netware. Custo Esta uma das grandes vantagens do Perl sobre outras linguagens. O Perl uma linguagem de cdigo aberto. Isto significa que o cdigo de Perl est disponvel para qualquer pessoa que deseje utiliz-lo. 37 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Padronizao H um grupo encarregado pelo desenvolvimento geral da linguagem, os Perl Porters. Desta forma garante-se pouca discrepncia entre as verses, reflectida na compatibilidade entre verses anteriores e as seguintes. Dado que o ncleo da linguagem de cdigo aberto, nenhuma companhia pode apropriar-se da linguagem.

Na Fig. 10 exemplificada a manipulao de msicas como objectos PERL.

#!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); # caso haja falhas, sero vistas no browser print "Content-type: text/html\n\n"; # cabealho a espeficicar que a resposta ser em texto ou html my $filename = "50 Cent - Candy Shop.mp3"; # declara o nome do ficheiro da msica que ser estudada use MP3::Tag; # carrega o mdulo $mp3 = MP3::Tag->new($filename); # carrega a msica # capta informaes (ttulo, nmero da faixa, artista, album, comentrios, ano e gnero respectivamente) da msica ($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->autoinfo(); $comment = $mp3->comment(); # envia os comentrios para a varivel $comment print qq~ Ttulo: $title<br> Artsta: $artist ~; # mostra dados como ttulo e artista $mp3->close(); # fecha ligao mdulo/msica

Fig. 10 Exemplo em PERL na anlise de msicas.

38 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Para alm de tudo o que j foi nomeado, a maioria dos mdulos mais usados nos programas faz parte de distribuio PERL. O CPAN (Comprehensive Perl Archive Network), tambm conhecido como repositrio de mdulos PERL, tem uma larga panplia de ofertas, entre elas: Mdulos como CGI, HTML, HTTP, LWP e Apache para scripts Web; Compatibilidade com POSIX e programao UNIX; Sockets para estruturas e programao de rede; Mdulos de suporte para muitos protocolos como Net::FTP, Net::DNS, Net::TCP, Net::SMTP, Net::IMAP; Mdulos de suporte para chamadas de procedimentos remotos como RPC::plserver, RPC::plclient, RCP::simple; Mdulos de suporte para estruturas e funes matemticas como:Math::BigInt, Math::Trig, Math::Polynomial; Mdulo de suporte para interface de bases de dados como: DBI, DBD, Oracle, Sybase; Mdulo de suporte de Java para comunicao entre Perl e JVM (Java Virtual Machine); Suporte para outras linguagens como: Language::ML, Language::Prolog, C::DynaLib e Python; Mdulo de suporte a famlias de documentos como: PostScript, Font, PDF, XML, RTF e Tex, SQL; Mdulos de suporte a segurana e encriptao como: PGP, DES, Crypt, Authen;

Para alm disto, nenhum programador necessita de perder tempo escrevendo cdigo que algum j escreveu bem. O CPAN [8] o resultado do contributo de vrios programadores.

39 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Por todas as vantagens apresentadas acerca do PERL, esta linguagem considerada pelos administradores de sistemas, como uma linguagem de scripting muito til e de grande potencial, da a usarem sempre que necessrio.

2.6.2.4 Python Python [18] uma linguagem de programao interpretada, interactiva, orientada a objectos (mas tambm com suporte para outros paradigmas, como a programao funcional) onde os tipos de variveis, retornos de funes e parmetros so identificados pelo interpretador e os valores e objectos tm tipos bem definidos. A delimitao dos blocos de instrues feita por identao. No h delimitadores como Begin e End da linguagem Algol4 ou as chavetas da linguagem C. Oferece tipos de dados de alto nvel como strings, dicionrios (tambm conhecido por hashes ou arraws indentificados por uma chave), listas, classes, entre outros. A linguagem suporta outros paradigmas de programao alm da orientao a objectos, como a programao modular, para organizar melhor os nomes e contexto de variveis e a programao funcional, que reala a avaliao de expresses, ao contrrio da execuo imperativa de comandos. A sintaxe fcil de ser compreendida e rpida de ser dominada, sendo considerada por muitos um dos grandes atractivos da linguagem. A construo dos tipos de dados de alto nvel. A linguagem Python compatvel com diversas plataformas, desde UNIX (LINUX, FreeBSD, Solaris, MacOS X etc.), Windows, .NET, verses antigas de MacOS, consolas de jogos e mesmo de alguns celulares, como a srie 60 da Nokia e palmtops. Para algum sistema operativo no suportado, basta existir um compilador C disponvel e gerar o Python a partir da fonte. O cdigo fonte traduzido pelo interpretador para o formato bytecode, que multiplataforma e pode ser executado e distribudo sem a fonte original.

O ALGOL uma famlia de linguagens de programao de alto nvel voltadas principalmente para aplicaes cientficas. O seu nome provm das palavras "ALGOrithmic Language".

40 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Os mdulos de extenso podem definir novas funes e variveis, tal como novos tipos de objectos. O Python , em vrios aspectos, semelhante a outras linguagens interpretadas como Perl e Ruby [22]. Embora tivesse sido criada para ensino de programao de computadores, no uma linguagem limitada ou com poucos recursos. uma linguagem de altssimo nvel, ou seja, bem mais prxima do raciocnio humano que da arquitetura da mquina. hoje usada em diversas reas, como servidores de aplicao e computao grfica. Est disponvel como linguagem script em aplicaes como OpenOffice (Python UNO Bridge) e pode ser utilizado em Stored Procedures na base de dados PostgreSQL (PL/Python). Os scripts, facilitam bastante as tarefas de um administrador de sistemas mas de cada vez que surge alguma alterao ao cenrio, o script no uma soluo muito dinmica, nem escalvel, j que mais pequena alterao de configurao de um sistema, o script ter de ser adaptado s alteraes e depois ser aplicado s vrias mquinas para propagar o novo cenrio. Desta forma, voltam-se a ter as tarefas morosas que o administrador queria evitar. 2.6.3 Por outros utilitrios Existem outros utilitrios, que apostam bastante na componente grfica, como o caso do GNOME e do KDE, baseados no sistema de janelas X (X-Windows) [32]. O X foi criado em 1984 e um protocolo standard para GUI (Graphical Interface User) baseado em janelas dos sistemas UNIX. J vai na dcima primeira verso e funciona segundo um modelo cliente-servidor. O servidor distribui as aces de entrada (rato, teclado) do utilizador e aceita pedidos de sada atravs de vrios programas clientes e de vrios canais de comunicao entre os processos. Os clientes funcionam de modo transparente tanto na mesma mquina do servidor como noutras, mesmo com arquitectura e sistema operativo diferente. O Gnome apareceu em 1997 com a inteno de criar um ambiente desktop em cdigo aberto para sistemas de cdigo aberto, criando assim um ambiente amigvel para os

41 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

utilizadores. Na sua primeira verso foi escrito em linguagem C, mas nos dias de hoje tem outras linguagens incorporadas como C++, Ruby e Python. O KDE outro ambiente grfico. Est escrito em C++ e tambm um programa de cdigo aberto. Tanto o Gnome como o KDE correm sobre janelas X. Estes dois programas acrescentaram vrios benefcios ao Linux. No entanto, embora possuam utilitrios que permitam configurar alguns servios, so ainda muito limitados. Por exemplo, estes utilitrios permitem funes de gesto da rede, ou seja, alguns permitem configurar servios como activar uma interface de rede ou monitorar os logs do sistema mas para configurao de um servio mais elaborado no possui suporte. Embora as linguagens e utilitrios enunciados neste captulo facilitem as tarefas de administrao, so ainda incompletas, pouco escalveis e limitativas nalgumas funes. Assim, a limitao dos scripts e das solues grficas para UNIX, leva necessidade de novas solues que permitam uma gesto mais eficiente das mquinas UNIX. Nesse sentido surge, numa perspectiva escalvel e centralizada e com uma interface amigvel e intuitiva, o Webmin, a aplicao que ser analisada no prximo captulo.

42 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

3 Webmin
O Webmin um sistema de administrao que permite a gesto de um ou vrios sistemas UNIX, configurados num cluster do Webmin. A gesto pode ser efectuada localmente ou remotamente. O Webmin disponibiliza uma interface grfica baseada na Web e acessvel por um browser atravs do protocolo HTTP (Hypertext Transfer Protocol). Os acessos remotos a outros servidores Webmin so realizados atravs do protocolo RPC (Remote Procedure Call). A configurao dos servios faz-se com base no preenchimento de formulrios especficos. A actualizao dos ficheiros de configurao efectua-se imediatamente aps a submisso do formulrio. O processo rpido e consistente, sendo validados todos os valores inseridos no formulrio antes da actualizao dos ficheiros de configurao. Este sistema de administrao existe actualmente para uma grande variedade de sistemas operativos UNIX. de fcil instalao, configurao e utilizao. O Webmin foi desenhado e desenvolvido por Jamie Cameron em 1997, na linguagem Perl. A principal funcionalidade do Webmin permitir a visualizao dos ficheiros de configurao de um sistema UNIX num browser atravs de uma interface amigvel, manipulando-os de uma maneira muito simples. Assim, os administradores no necessitaro de editar manualmente os ficheiros de configurao de um determinado servio. Desta forma, conseguem instalar um determinado servio com facilidade, tendo disponvel a centralizao da gesto de vrias mquinas e o controlo de erros que o programa oferece, pois como muito do cdigo do programa, as hipteses do administrador se enganar, nas configuraes que define diminuta. Esta ferramenta de administrao surgiu na sequncia do autor ser administrador de um sistema com um servidor de DNS (Domain Name Server), onde demorava imenso tempo a actualizar os ficheiros de configurao do servidor e a adicionar novos registos de mquinas, a pedido dos utilizadores. Como no era vivel ceder a sua senha de acesso, pois os utilizadores no possuam experincia de edio de zonas e de reiniciar o servidor, a soluo passava por conceber uma simples interface web que mostrasse os registos existentes e que os permitisse criar, editar e apagar. Os 43 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

utilizadores poderiam assim, com a autorizao do autor, ter um acesso seguro a essa interface para fazer as alteraes que necessitassem. A gesto de DNS foi apenas o comeo, a partir da todas as possibilidades de simplificao vistas pelo autor foram adicionadas ferramenta, atravs de mdulos. Como os mdulos de adio de utilizadores, servidor Samba, gesto de sistemas de ficheiros, configurao de NFS (Network File System) e tarefas CRON5. Em seguida, atribuiu-lhe o nome de Webmin, p-lo acessvel para ser descarregado da Internet e anunciou-o nalgumas mailling lists. Como o feedback que recebeu foi bom, prosseguiu o desenvolvimento de novas funcionalidade e a manuteno das j existentes. As distribuies de Linux Caldera e MSC.Linux suportaram financeiramente o projecto e como o Webmin foi concebido para ser leve, funcional e de fcil extenso, foi traduzido em diversas linguagens e dialectos. Com o passar dos anos, cresceu para 94 mdulos, recebeu suporte para lnguas no-inglesas, melhorou o controlo de acessos, incluiu mais verses de sistemas operativos UNIX e suporte para Windows e ofereceu novas funcionalidades com o apoio dos vrios utilizadores que contriburam com excertos de cdigo, mdulos, tradues e sugestes. Para alm dos mdulos normais, existem outros que foram desenvolvidos por annimos que se encontram disponveis [24] para serem adicionados ao Webmin, conforme as necessidades do administrador. O desenvolvimento do Webmin nas plataformas UNIX em que est disponvel contempla as caractersticas enunciadas na Tabela 3.

Entende-se por uma tarefa CRON, uma tarefa que programada para ser executada num determinado momento

44 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Vantagens: Portabilidade Modularidade

Devido a: Est escrito em PERL As funcionalidades so asseguradas por mdulos independentes suportado por diferentes sistemas UNIX e

Heterogenidade

tambm existe actualmente uma distribuio para Windows

Proteco contra erros de sintaxe

Como o cdigo em menor quantidade tambm os erros so menos provveis dos Usa a mesma base de dados (ficheiros de configurao) das configuaes manuais,

Integridade/Coerncia/Consistncia ficheiros de configurao

assegurando a consistncia dos dados possvel misturar com sucesso vrias formas de

Flexibilidade/Compatibilidade

configurao: por exemplo, configurao manual e uso de scripts

Centralizao

Possibilidade de definir cluster de mquinas no Webmin e gerir as vrias mquinas como uma s open source, de acesso gratuito, disponvel atravs de uma licena GNU possvel definir vrios perfis de administrador de sistemas. Quando configurado correctamente,

Gratuitidade

Segurana

o Webmin permite utilizar o protocolo SSL (Secure Socket Layer) para uma comunicao segura em HTTP

Acesso Remoto

Permitir a gesto remota de vrios servidores, usando a mesma interface grfica

Tabela 3 Vantagens do Webmin. Todas as vantagens enunciadas na tabela acima demonstram que o Webmin uma ferramenta til que auxilia as tarefas de um administrador Linux. Como bastante

45 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

fcil de usar uma boa escolha no sentido que assegura a flexibilidade e centralizao das tarefas de administrao da rede.

3.1 Instalao
O Webmin pode obter-se atravs do site oficial [27], sendo a ltima verso disponvel a 1.2.9 (disponvel em 29 de Junho de 2006) que j contempla a administrao Windows, embora ainda esteja numa fase pouco desenvolvida. A actualizao do Webmin bastante frequente, permitindo ter uma verso actualizada e estvel, suportando sempre mais servios, funcionalidades e correces dos erros reportados nas verses anteriores. Algumas das distribuies de Linux incluem o Webmin na sua configurao standard, mas para as que no o trazem includo por defeito facilmente instalado atravs do site oficial ou atravs de utilitrios como o yum ou apt-get que instalam automaticamente as packages relativas ao programa. Quando se est a actualizar o programa, o procedimento idntico ao da primeira instalao e qualquer configurao que tenha sido feita na verso anterior, sair intacta depois da actualizao. Embora o Webmin suporte uma variedade de sistemas UNIX, no as cobre todas, pois este manipula determinadas configuraes que diferem em localizao e formato entre as diferentes distribuies de sistemas operativos UNIX. Por isso, o Webmin tambm est adaptado aos diferentes tipos de distribuies, ou seja aquando a instalao, no caso de ser feita manualmente h que ter em conta o tipo de distribuio. Os formatos disponveis so: RPM, tar.gz, solaris packages ou formato adaptvel para Windows. Depois de instalado basta abrir o browser no endereo http://localhost:10000.A Fig. 11 apresenta o ecr inicial de login do Webmin.

46 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 11 Ecran de Login do Webmin. O administrador deve estar apto a entrar com a conta de root, usando a mesma senha de acesso UNIX no sistema Linux. Se a libraria OpenSSL e se o mdulo PERL Net::SSL j estiverem instalados no sistema, o Webmin iniciar-se- automaticamente em modo SSL (Secure Socket Layer). Isto significa que no endereo ser usado o protocolo HTTPS em vez do habitual HTTP. O protocolo HTTPS permite estabelecer uma ligao segura ao servidor pois encripta os dados trocados entre o browser web e o servidor Webmin.

3.2 A interface com o utilizador do Webmin


Assumindo que o processo de instalao decorreu com sucesso, o browser deve mostrar o menu principal com a categoria do Webmin seleccionada conforme a Fig. 12. Para alm dessa categoria, existem as categorias de System, Servers, Networking, Hardware, Cluster e Others. Cada mdulo pertence a uma categoria.

47 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 12 Categoria Webmin do Programa. Para terminar a sesso no Webmin basta aceder opo Logout no canto superior direito de qualquer uma das pginas. Para enviar um feedback ao autor, basta acederse opo Feedback. E o logtipo do Webmin tem uma ligao ao site oficial do Webmin. Algumas verses do Webmin usam themes diferentes, ou seja o layout difere um pouco do apresentado, mas as categorias e os mdulos continuam os mesmos.

3.3 Funcionamento
Esta seco descreve o funcionamento do Webmin, evidenciando os principais blocos e a sua iterao com o administrador. Na Fig. 13 a interface cliente representa o ponto de acesso, via browser, do administrador ao Webmin e, consequentemente, gesto da rede. O servidor Webmin encontra-se em execuo no sistema e garante a alterao local dos ficheiros de configurao, mediante os pedidos de administrao efectuados.

48 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Webmin
2 Validar parmetros Categorias: Webmin System Servers Networking Hardware Cluster Others 3- Executar pedido

HTTP

Interface Cliente

Administrador de Sistemas

Fig. 13 Arquitectura do Webmin. O Webmin um programa que simplifica a gesto de um sistema UNIX. Normalmente necessrio editar manualmente os ficheiros de configurao e executar comandos para criar contas, activar servidores, entre outros. Com o Webmin possvel elaborar todas essas tarefas atravs de uma interface web fcil de usar e, esta actualiza automaticamente todas as configuraes necessrias. A maioria das interfaces de administrao apenas acessvel localmente. No entanto, o Webmin, como trabalha com uma interface web, tem a possibilidade bastante cmoda, de se poder configurar uma mquina atravs da rede, pois basta ter acesso a um browser. O Webmin implementa um servidor especfico que atende os pedidos dos clientes. Esse servidor est implementado no script em PERL miniserv.pl, um dos ficheiros fundamentais do Webmin, como ser detalhado na seco 3.5. Note-se que no existe qualquer diferena entre aceder ao Webmin local ou remotamente, e assim muito mais fcil de usar sobre a rede do que outros programas 49 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

de configurao grfica, como o Gnome ou KDE. Com isto, possvel configurar uma mquina atravs de praticamente qualquer plataforma de hardware e software. O Webmin tem vrias funes disponveis pois, permite configurar a maior parte dos servios e servidores dos sistemas UNIX. Cada mdulo responsvel por gerir determinado servio ou servidor, como por exemplo, os utilizadores UNIX, o servidor Apache ou packages de programas. Mas um melhor conhecimento dos mdulos disponveis, consultar o site oficial do Webmin [27] ou o SourceForge [24]. O Webmin apenas uma ferramenta de configurao, ou seja, como bvio, necessrio ter os programas instalados para os poder configurar. Por exemplo, o mdulo do Apache necessita que o servidor web Apache esteja instalado. Felizmente, todos os servios e servidores que o Webmin gere, esto na maioria das distribuies Linux bsicas, ou seja pode-se descarregar e instalar gratuitamente.

3.4 Organizao
O Webmin est organizado em mdulos. Cada mdulo tem uma estrutura de direco e ficheiros de configurao idntica. Supondo que se instala a aplicao em
/usr/libexec, a estrutura de directrios a seguinte:

/usr/libexec/webmin/

Directrio principal.

miniserv.pl

Servidor Webmin, desenvolvido em PERL, responsvel

pelo processamento dos pedidos dos clientes.

web-lib.pl

Funes genricas em Perl, desenvolvidas para o Webmin e

utilizadas nos programas.

*.pl

Scripts em Perl para a instalao e configurao do servidor Webmin. 50 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

*.cgi

Programas que processam os pedidos Webmin, atravs de CGIs

desenvolvidas em PERL.

mime.types

MimeTypes aceites pelo servidor nas sesses HTTP do

Webmin.

config-<PlataformaUNIX>

Variveis de ambiente utilizadas pelo

seridor Webmin em cada plataforma UNIX.

/etc/webmin

Directrio para cada um dos servios geridos pelo servidor. Em

cada directrio reside o ficheiro config com a definio de variveis de ambiente utilizadas pelo mdulo. E scripts de paragem e arranque do servidor. Cada mdulo tem igualmente uma estrutura de ficheiros e directrios bem definida e idntica. Por exemplo, o mdulo de gesto de utilizadores, instalado no directrio

/usr/libexec/webmin/useradmin/, tem a seguinte estrutura:

./help/*

Ficheiro de ajuda para as opes disponibilizadas no

mdulo.

./images/*

Imagens diversas.

./lang/*

Ficheiros de traduo da interface grfica para as

diversas lnguas suportadas pelo Webmin.

51 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Config-<OS>

Define,

para

cada

sistema

operativo,

as

caractersticas especficas de configurao do servio.

Config.info.<LANG>

Ficheiros com traduo para as lnguas

suportadas pelo Webmin, dos valores das variveis usadas nos programas.

Cron-lib.pl

Diversas funes em PERL para a configurao e

gesto do servio.

Index.cgi

Ficheiro correspondente pgina principal do mdulo.

*.cgi

Scripts em Perl que efectuam as aces pedidas pelo cliente

ao servidor Webmin.

3.5 Processamento de Pedidos


O servidor Webmin inicia-se pelo script /usr/libexec/webmin/miniserv.pl. Por defeito, o servidor atende os pedidos no porto TCP 10000, sendo este parmetro configurvel na fase de instalao. O funcionamento do servidor Webmin consiste em: 1. Ler e validar os ficheiros de configurao do servidor, onde so definidos diversos parmetros gerais, nomeadamente, plataforma de UNIX, lngua a utilizar e definio de diversas variveis de ambiente. 2. Abrir o socket principal do servidor e escutar os pedidos no porto TCP 10000. 3. Abrir um socket UDP para permitir ligaes UDP a outros servidores Webmin.

52 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

desta forma que um servidor Webmin acede remotamente a outros que j estejam previamente configurados. No entanto, o protocolo usado entre estes servidores Webmin e o cliente/administrador o HTTP. 4. Inserir em /var/webmin/miniserv.pid o nmero do processo de sistema atruibudo (correspondente ao PID Process id) e iniciar limpeza de logs. 5. Iniciar ciclo principal de atendimento de pedidos: Aceitar pedido do cliente. Criar um sub-processo para atender o pedido. Testar a possibilidade de utilizao do protocolo SSL. Evocar a funo handle-request que trata o pedido do cliente e evoca os correspondestes scripts CGI. Terminar sub-processo e correspondente socket. Terminar o socket principal quando o servidor pra.

A Fig. 14 ilustra o processamento de um pedido HTTP ao servidor Webmin. O cliente efectua um pedido HTTP ao Webmin. Esse pedido pode ser do tipo GET, enviando os dados no URL ou por POST, enviando os dados do pedido embebidos no cdigo HTTP mas transmitidos em clear text, excepto se estiver configurado com SSL (Secure Socket Layer). O Webmin cria um sub-processo para processar as aces relativas ao pedido efectuado e gera a pgina de resposta ao cliente. Aps concludas as aces associadas ao pedido, o servidor termina o sub-processo e envia a pgina de resposta ao cliente que efectuou o pedido. O ficheiro miniserv.pl um dos ficheiros fundamentais do Webmin, pois implementa o servidor web que, por omisso, escuta no porto 10000 e o responsvel por receber e enviar os pedidos e respostas HTTP ou HTTPS, no caso de utilizar SSL entre o browser e o servidor.

53 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

O miniserv.pl, como se pode ver na Fig. 14, aceita um pedido HTTP (1) de um cliente e atravs de um sub-processo (2) processa o pedido executando a cgi correspondente (3, 4) e devolve a resposta do pedido ao cliente (5, 6 e 7). Uma CGI (Common Gateway Interface) consiste na tecnologia que permite gerar pginas dinmicas permitindo que um browser passe parmetros para um programa alojado num servidor web. Assim, designam-se por scripts CGI, pequenos programas que interpretam esses parmetros e geram a pgina depois de os processar. A linguagem mais associada aos CGIs o PERL, no entanto o CGI foi concebido para ser independente da linguagem utilizada. Actualmente tecnologias como ASP.NET ou PHP continuam a utilizar a especificao.

Fig. 14 Processamento de pedidos no Webmin [4].

3.6 Segurana na Rede


Desde que o Webmin seja executado num sistema ligado rede, boa poltica restringir o acesso ao programa a determinados endereos de rede, assim como o seu acesso conta de root. Embora o nome e senhas de acesso sejam sempre necessrios para se ligar ao sistema, sempre bom que haja um nvel adicional de segurana em caso de tentativa de ataques, como descobrir a password de root. O controlo de acessos IP tambm protege o sistema de bugs que possam porventura possibilitar um ataque de entrada sem password. Algumas das verses antigas tinham este problema. O mdulo a aceder para garantir apenas acessos autorizados o IP 54 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Access Control que est inserido no mdulo Webmin Configuration da categoria Webmin e a seleccionar a opo que permite apenas determinadas mquinas e ceder os dados sobre estas. Para alm do controlo de acessos, usar o Webmin com SSL (Security Socket Layer) torna a utilizao do mesmo mais segura, pois usa encriptao dos dados, o que dificulta a intercepo da comunicao.

3.7 Cluster
Um Cluster Webmin um grupo de mquinas independentes, designadas por ns, que so identificadas por um nico identificador. Assim, as aces de administrao que sejam realizadas nos clusters afectaro todas as mquinas que tenham sido configuradas. O Webmin tem um conjunto de mdulos que simplificam a execuo de tarefas em diversas mquinas em simultneo, em cluster. Por exemplo, uma empresa com centenas de servidores, que necessitam de variados servios, como a instalao de packages de software, a criao de utilizadores UNIX ou a adio de novos mdulos do Webmin, beneficia muito com a uma administrao centralizada. O Webmin, atravs da categoria Cluster, disponibiliza funes para gerir este tema. Para um sistema fazer parte de um cluster ter de ter o Webmin instalado. Uma das mquinas do cluster (servidor Master) contacta as restantes (servidores secundrios) atravs do protocolo RPC (Remote Procedure Call) e instrui-as sobre a realizao de tarefas previamente definidas. No servidor Master necessrio, no mdulo Webmin Servers Index, registar todos os servidores secundrios. Por cada servidor secundrio gerido, o username e password destes devem ser especificados para o master se poder autenticar nos secundrios. A partir deste momento os outros mdulos da categoria Cluster podem ser usados para configurar os servidores secundrios. O protocolo RPC usado no Webmin para aceder remotamente a um ficheiro e executar um dado comando num servidor Webmin. Por defeito, apenas os utilizadores root e admin tm permisso de executar chamadas RPC num servidor secundrio. Isto significa que adicionar outro utilizador no mdulo Webmin Server Index para 55 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

receber chamadas no servidor secundrio, por defeito, no funcionar, a no ser que seja especificado na ACL (Access Control List) desse utilizador que pode aceitar entradas por RPC. O protocolo RPC que o servidor master usa na comunicao com os outros servidores nico do Webmin, oe seja, diferente de outros protocolos similares, como o RPC da Sun [20], SOAP6 ou RMI7. O RPC possui dois diferentes modos de acesso: o tradicional, em que apenas os pedidos HTTP so usados para enviar comandos; e o mais recente, tambm chamado de mtodo rpido, utiliza uma ligao TCP permanente. Este ltimo mtodo mais rpido e mais fidedigno mas pode falhar se a firewall estiver a bloquear o trfego entre o master e os secundrios. Este novo mtodo usa por defeito os portos 10001 ou acima, enquanto o protocolo antigo utiliza o porto normal das ligaes Webmin, o porto 10000. O protocolo RPC ser explicado melhor seco. na prxima

O SOAP (Simple Object Access Protocol) um protocolo para intercmbio de mensagens entre programas de computador. um dos protocolos usados na criao de Web Services. 7 O RMI (Remote Method Invocation) funciona de forma semelhante ao RPC, e uma forma prtica de se implementar um sistema distribudo em Java. A grande vantagem do RMI em relao ao RPC devido ao facto de ser possvel invocar mtodos de objectos remotos e transferir objectos entre estes.

56 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 15 Funcionamento de um cluster no Webmin. Na Fig. 15, pode ser observado o que foi explicado anteriormente e ser reforado na seco seguinte. Depois de agregado um conjunto de mquinas a uma principal (master), por cada mdulo da categoria Cluster que seja acedido pelo administrador, na principal, estabelecida uma ligao de RPC e comunicao entre a principal e as secundrias far-se- atravs dessa mesma ligao. Por outro lado, a comunicao entre o administrador e o servidor principal ser feita atravs de HTTP.

3.8 Remote Procedure Call


O RPC um protocolo que serve de base para outros protocolos, como o NFS (Network File System) e o NIS (Network Information System). Tal como mostra a Fig. 16 [3], um cliente RPC faz chamadas s funes dos servidores RPC, passa-lhe os parmetros e recebe os resultados. Para o cliente ou o servidor fazerem uma chamada remota a um procedimento, isso no mais do que fazer uma chamada a uma biblioteca, o que torna a utilizao do RPC mais fcil do que criar um protocolo especfico para isso.
long StringToNumber (String) { }

Cliente

Servidor

1 Espera por pedidos

2 Invoca funo x = StringToNumber (123); 3 Executa a funo com os parmetros fornecidos e envia o resultado Devolve resultado

Fig. 16 Modelo representativo do funcionamento do protocolo RPC 57 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Um programa RPC um conjunto de funes que so manuseadas pelo servidor. Cada programa tem um nico nmero, similar a um porto de um servio de Internet. Os programas no esto associados com nenhum protocolo em particular e geralmente aceitam pedidos UDP ou TCP. E no possuem portos fixos, sendo associados dinamicamente quando necessrio atravs do portmapper8. Invocar um procedimento remoto com determinados parmetros de entrada e obter no retorno o respectivo resultado, traduz-se na verdade por uma relao cliente-servidor, em que o cliente solicita a um servidor a realizao de um servio. Este servio, traduz-se pela invocao local no servidor do procedimento pretendido, manuseando e executando remotamente um conjunto de funes como um todo. Este conceito de servio no existe noutras solues de programao distribuda como sockets9. Para alm disso, a programao com sockets pouco escalvel pois apenas permite a transferncia de bytes, no suportando estruturas mais complexas. Funcionamento do RPC no Webmin O RPC o protocolo que um servidor Webmin usa para controlar outro. Um pedido RPC normalmente a chamada de uma funo numa biblioteca de um determinado mdulo e inclui os parmetros dessa funo. Existem no entanto, outros pedidos RPC para transferir informao entre os servidores, verificando se o mdulo est disponvel, obtendo a configurao do mdulo e executando o excerto de cdigo PERL correspondente. Quando, por exemplo, adicionado um novo utilizador no mdulo Cluster Users and Groups, vrias chamadas RPC so executadas para inserir o seu registo no ficheiro de passwords, criar a sua home directory e para copiar os os ficheiros standard (por exemplo, os ficheiros relativos s shell) para l. O RPC tem dois mtodos diferentes: o rpido e o lento. O modo lento o mais simples, usa pedidos HTTP do servidor mestre para o servidor escravo por cada funo RPC que chamada, transferncia de ficheiros ou pedido de informao.

O portmapper um servio que corre nos ns da rede com a funo de mapear programas RPC a endereos de rede de um servidor que escutam em determinado porto. 9 Entende-se por socket um canal de comunicao bidireccional entre dois ou mais processos. Opera ao nvel da camada de transporte do modelo OSI.

58 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Todos os parmetros, dados e valores devolvidos esto includos nesse pedido, e na sua resposta e mais nenhuma ligao TCP feita. A vantagem deste modo que consegue trabalhar atravs de proxy e firewall, bem como os pedidos no porto 10000 so permitidos. Para alm de ser lento, este modo tem outro aspecto negativo: o HTTP 1.0 um protocolo stateless, ou seja, no mantm um estado persistente entre as transaces. No entanto, as chamadas RPC do Webmin so stateful. bastante possvel que uma funo seja chamada para alterar uma varivel global de que a prxima funo dependa. Isto significa que um processo em background que mantenha o estado da ligao deve ser iniciado, no sistema remoto, por cada mestre que abra uma sesso RPC. No h maneira, no entanto, do sistema escravo detectar automaticamente o trmino do programa cgi do mestre e do processo em background, pois deixou de haver a ligao directa entre os dois. A soluo do Webmin ter um processo de sada quando o mestre chama um RPC especial, ou aps 30 segundos de inactividade. Se um programa cgi do mestre no invocar remotamente a funo remote_finished, o processo remoto fica como que pendurado em memria consumindo recursos at atingir o timeout. Se por alguma razo passarem mais de 30 segundos entre o RPC chamar o mesmo anfitrio, o processo de background ser terminado aps esse tempo e as chamadas futuras do RPC falharo. O protocolo rpido do RPC resolve estes problemas usando apenas um pedido inicial de HTTP e um processo em background iniciado no sistema remoto. O utilizador mestre faz ento uma ligao TCP a este processo (que est escuta num porto livre), e emite pedidos RPC atravs dessa ligao preferencialmente. Quando o programa mestre termina, esta ligao quebrada automaticamente e o processo em background remoto terminado. Nenhuma ligao de controlo ou intervalo de paragem especial so necessrios. A modalidade rpida do RPC tem melhor sustentao para transferncia de ficheiros grandes entre sistemas remotos. A modalidade lenta tenta codificar ficheiros dentro dum pedido HTTP, que pode falhar se forem demasiado grandes. A modalidade rpida transfere-o preferencialmente descodificado atravs de uma ligao separada TCP, que mais rpida mas de confiana. Os pacotes de software e os mdulos da configurao do Webmin podem falhar ao instalar um pacote extenso na modalidade lenta. O nico problema com a modalidade rpida que alguma firewall pode obstruir 59 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

a ligao TCP, que feita tipicamente num porto que um ou dois nmeros mais elevado do que o porto por defeito do Webmin de anfitrio remoto, tal como 10001 ou 10002. As ligaes mltiplas podem ser feitas se os dados forem transferidos com RPC, assim que toda a firewall entre dois utilizadores seja configurada para permitir ligaes do mestre ao anfitrio remoto em portos na escala de 10000 at 10100. [7]

3.9 Desenvolvimento de novos mdulos para o Webmin


O Webmin foi desenhado para permitir uma fcil adio de novos mdulos sem a alterao dos mdulos existentes. Um mdulo pode ser pensado como algo semelhante a um plug in, na medida em que pode ser escrito e distribudo por qualquer pessoa, independentemente de ter ou no acompanhado o desenvolvimento da primeira verso do Webmin e pode distribuir o seu mdulo sob a licena que escolher. Um mdulo deve ser escrito para administrar um determinado servio ou servidor. Por exemplo, para manipular o ficheiro de passwords UNIX ou para configurar o servidor Web Apache. Algumas funes mais complexas do sistema podem estar divididas por vrios mdulos. Por exemplo particionar, montar discos e gerir quotas em disco esto separados em 3 mdulos Webmin diferentes. Teoricamente, os mdulos podem ser escritos em qualquer linguagem. No entanto, para fazer uso da API do Webmin necessrio usar a linguagem PERL na verso 5.002 ou superior. Da a preferncia dos mdulos serem escritos na sua totalidade em PERL, sem funes de linguagem C ou programas binrios externos. O objectivo ter mdulos, to portveis quanto possvel, que possam ser compatveis com os diversos sistemas UNIX e arquitecturas de computadores.

60 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Os mdulos escritos noutras linguagens no sero apresentados com o mesmo theme10, das novas verses do Webmin. Pois, o theme actual substitui a funo de cabealho por uma sua que mostra os cones de categoria no topo de cada pgina. Por este motivo, o uso de PERL altamente recomendado. Os mdulos so directrios de programas CGI que o servidor web do Webmin (miniserv.pl) executa. Existem determinadas regras para a criao de um novo mdulo, para garantir compatibilidade com a API, menu principal e controlo de acessos do Webmin. Para adicionar um novo mdulo so necessrios ficheiros imprescindveis. Cada mdulo tem o seu prprio sub-directrio sob os directrios base do Webmin, onde para cada um dos mdulos, os ficheiros dos programas CGIs devem ser armazenados. Por exemplo, se o directrio base do Webmin for /usr/libexec/webmin, um determinado mdulo chamado foobar deve estar instalado dentro deste directrio, ou seja em /usr/libexec/webmin/foobar. Para um mdulo aparecer no menu principal do Webmin, este deve conter no mnimo os ficheiros apresentados abaixo. Note-se que apenas o ficheiro module.info obrigatrio.
module.info o ficheiro responsvel por o mdulo ser apresentado no

menu principal do Webmin. Para alm disso, contm informao acerca do mdulo e do sistema operativo em que executado. Cada linha do ficheiro tem o seguinte formato: nome = valor.

Os nomes obrigatrios e os seus valores so:


name Nome atribudo ao mdulo.

Entende-se por theme a package que contm os detalhes da aparncia grfica, usada para configurar os estilos do ambiente de trabalho. Os themes de aplicaes individuais so conhecidos por skins e representam o mesmo de um theme. 61 (c) Patrcia Silva 2006

10

Anlise de Solues Open Source para Administrao de Redes

desc Uma longa descrio acerca do mdulo. Este o texto que ir

aparecer abaixo do cone do menu principal.


os_support Uma lista de sistemas operativos que este mdulo

suporta, separada por espaos. O mdulo ser apresentado no menu principal apenas se o sistema operativo onde o Webmin est a correr constar na lista ou se no existir uma linha os_support para todos. A no ser que o mdulo configure algum servio que apenas exista em poucos SOs (como o Xfree86), esta linha dever ser omitida em vez de se ter de listar todos os SOs suportados pelo Webmin.

Os cdigos dos sistemas operativos encontram-se na terceira coluna do ficheiro os_list.txt, localizado no directrio raz do Webmin. Um exemplo de uma linha de os_support :

os_suppor=redhat-linux

suse-linux/8.1

O exemplo acima representa que o mdulo em questo suportado apenas em Red Hat e Suse 8.1.

Se o mdulo suporta todas as distribuies Linux mas mais nenhum sistema operativo, deve-se usar o cdigo *-linux nesta linha.
depends - Uma lista de outros mdulos dos quais o mdulo em

questo depende, separada por espaos. Se um mdulo depender de outro, o Webmin previne que seja apagado o principal se o dependente ainda estiver instalado. Do mesmo modo, o Webmin no permite que o secundrio seja instalado se o principal ainda no estiver.
category - Este valor determina em que categoria do Webmin que

o mdulo ser instalado. Os valores suportados para categorias so system, servers, networking, hardware e cluster. No entanto se no ficheiro module.info no constar a linha category, o mdulo aparecer na categoria others.
hidden Nas verses 1.140 do Webmin ou acima, se este valor

estiver a 1 o mdulo no aparecer no menu principal, mas estar

62 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

acessvel. Este tipo de mdulos til para aqueles que contm apenas funes de bibliotecas ou scripts para ser usados por linha de comando.
images/icon.gif o icon apresentado no menu principal do mdulo. O

icon deve ter 48x48 pixeis e deve usar a mesma gama de cores que os outros icones do menu principal.
lang/en Esta string ser explicada na seco Internacionalizao.

Cada cone no menu principal uma ligao para o directrio do mdulo. Deve-se por isso ter um ficheiro index.cgi ou um index.html para ser apresentado quando o utilizador clicar no cone. Um mdulo tpico contm diversos programas .cgi que tm ligao a partir do index.cgi, e onde cada um responsvel por uma determinada funo como por exemplo, apresentar um formulrio ou guardar as entradas de um formulrio. Quando se cria um novo mdulo, ele no consta na ACL (Access Control List) de nenhum utilizador Webmin, ento ningum estar apto a v-lo no menu principal. Para o mdulo ficar visvel necessrio em primeiro lugar apagar o ficheiro
/etc/webmin/module.infos.cache

para

limpar

cache

dos

mdulos

conhecidos. Depois disso, para pr o mdulo visvel necessrio editar o ficheiro


/etc/webmin/webmin.acl ou usar o mdulo Webmin Users para dar acesso ao

mdulo a determinados utilizadores.

Os Programas CGI O servidor web do Webmin trata os ficheiros de extenso .cgi como programas CGI (ver seco 3.5), tal como a maioria dos outros servidores web. Todos os formulrios, menus e outras pginas em cada mdulo so geradas por programas CGI. Por isso para o desenvolvimento de novos mdulos necessrio possuir os conhecimentos bsicos de programao CGI e HTML. Todos os programas CGI correm com privilgios de root, o que fundamental para poderem editar ficheiros de configurao. Em alguns casos possvel partilhar esses

63 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

privilgios com outro utilizador, por exemplo um utilizador Webmin que tenha acesso ao mdulo. Assumindo que um mdulo est a ser escrito em PERL, deve-se comear a escrever um script PERL com as funes usadas pelos programas CGI do mdulo. Este script normalmente chamado como lib.pl ou foobar-lib.pl. Um exemplo de como um desses scripts se pode parecer apresentado no Exemplo 6.

# foobar-lib.pl # Common functions used for managing the foobar user list

do '../web-lib.pl'; &init_config();

(1) (2)

# list_users()

(3)

# Returns a list of all foobar users sub list_users { ... }

Exemplo 6 Script PERL para apoio de um programa CGI. As 3 linhas assinaladas no exemplo representam:
1. do '../web-lib.pl';

O ficheiro web-lib.pl na raiz de directrios do Webmin contm um enorme grupo de funes que so teis para o desenvolvimento de novos mdulos. Todos os programas CGI devem incluir directa ou inversamente, este script.

2. &init_config();

Esta funo (definida no ficheiro web-lib.pl) inicia um conjunto de 13 variveis globais. Entre elas, encontram-se desde a cor do corpo das tabelas ($tb), passando pelo nome do utilizador que est de momento ligado ao Webmin ($remote_user) 64 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

at

inforrmao

acerca

do

mdulo

partir

do

seu

ficheiro

module.info(%module_info), entre outras.

3. A funo list_users

Esta apenas um exemplo de uma funo que pode ser chamada por diversos programas CGI de um mdulo. Algumas bibliotecas podem tambm incluir funes especficas para o sistema operativo ou configurao em questo. No Exemplo 7 apresenta-se um exemplo de um programa CGI de um mdulo.
#!/usr/bin/perl # list.cgi # Display the list of foobar users (1)

require './foobar-lib.pl'; &header($text{'list_title'}, ""); print "<hr>\n";

(2) (3)

print "<table border>\n"; print "<tr $tb>\n";

(4)

print "<td><b>$text{'list_user'}</b></td>\n"; print "<td><b>$text{'list_real'}</b></td>\n"; print "</tr>\n";

@users = &list_users();

(5)

foreach $u (@users) { print "<tr $cb>\n":

(6)

print "<td><a href='edit.cgi?user=", &urlize($u->{'user'}),"'>$u->{'user'}</a></td>\n"; print "<td>$u->{'real'}</td>\n"; print "</tr>\n"; }

print "</table>\n"; print "<hr>\n"; &footer("", $text{'index_return'});

(7)

(8)

65 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Exemplo 7 Um programa CGI.

As linhas mais importantes apresentadas no exemplo so: 1. Todos os programas CGI devem comear com a linha contendo os caracteres #! seguidos do caminho para o interpretador do PERL Este deve ser o mesmo caminho que o Webmin usa, localizado no ficheiro /etc/webmin/perl-path. 2. Os programas CGI devem incluir as suas bibliotecas desta forma, ento o
init_config chamado e so definidas todas as funes disponveis na

biblioteca. 3. Qualquer CGI que produza uma sada HTML deve chamar uma funo de cabealho para produzir o ttulo da pgina. Neste caso, o ttulo actual vem do ficheiro do directrio lang/ que foi lido para a varivel %text. Apenas os programas que mais tarde chamem a funo redirect (Fornece um url relativo ou absoluto, imprimindo um header HTTP para o browser redireccionar para o ulr seguinte, esta funo no trabalha se for chamada depois da funo header e vice-versa), ou que no produzam qualquer cdigo HTML no devem ter header. 4. Estas cinco linhas imprimem HTML para o header da tabela que o CGI ir gerar. 5. Esta linha consiste numa chamada funo list_users definida no
ficheiro foobar-lib.pl, que ir returnar um array de utilizadores.

6. Este loop imprime as linhas da tabela, cada uma contm uma ligao para outro programa CGI do mdulo. Note-se que o uso da funo urlize
para converter o username num formulrio adaptado para ser um parmetro no URL.

7. Estas linhas produzem o cdigo HTML para o fim da tabela


e para a tradicional linha horizontal no final.

8. Cada programa CGI que chame a funo header deve chamar a funo
footer, para gerar o cdigo HTML para a finalizao da pgina.

66 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

As linhas do ficheiro lang/en correspondentes a este CGI podiam ser:


list_title=Lista de utilizadores Foobar list_user=Username list_real=Nome Real

Todos os mdulos que usem a internacionalizao tm de incluir o ficheiro lang/en (referente a language/english) e deve incluir tambm os respectivos lang/ para as outras lnguas. Tal como foi referido anteriormente, o ficheiro web-lib.pl contm um conjunto alargado de funes teis para gerar HTML, para fazer o parsing aos ficheiros e todas as outras funes que os mdulos Webmin precisem. Sinteticamente, cada script em Perl do Webmin, que processa uma determinada aco, tem a seguinte estrutura:
require ./user-lib.pl

Inclui as funes em Perl desenvolvidas para o mdulo de gesto de utilizadores.


&ReadParse

Executa a funo em Perl denominada ReadParse. Esta funo, disponvel no ficheiro web-lib.pl, analisa os valores includos no formulrio enviado ao servidor Webmin e efectua a respectiva anlise sintctica (parsing).
Cdigo

Cdigo em Perl que implementa uma determinada tarefa de administrao. Para mais informaes acerca do desenvolvimento de novos mdulos, aconselha-se a leitura atenta do documento Writing Webmin Modules [30].

3.10 Concluses
Depois da anlise detalhada do Webmin, conclui-se que esta aplicao tem diversas vantagens, destacando-se a possibilidade de gerir em cluster, um conjunto de mquinas e a partir de uma principal configurar as demais remotamente atravs de uma interface grfica frequentemente amigvel. Alis, quase tudo no Webmin 67 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

configurado amigavelmente e atravs de formulrios que depois de bem preenchidos e submetidos configuram determinado servio ou aspecto no sistema no entrado em conflito com anteriores ou posteriores alteraes manuais. O Webmin tem disponvies vrios mdulos e est em permanente desenvolvimento pela comunidade Open Source. No captulo seguinte sero feitos testes para comprovar a efectividade ou no da aplicao.

68 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

4 Cenrios de teste
Como se pode observar na Fig. 17, o cenrio implementado est localizado em duas salas distintas, com sub-redes diferentes. Na sala 2.2 a sub-rede 192.168.232.0, enquanto que no Laboratrio de Comunicaes Avanadas (LCA), a sub-rede a 192.168.226.0. Foi escolhida esta configurao para determinar qual seria o comportamento do Cluster Webmin ao manipular mquinas de sub-redes diferentes.

Fig. 17 Cenrio geral da rede implementada

69 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Em termos de hardware: Mquina MAQ1 Hardware Processador Pentium 4 a 3 GHz 512 MB de RAM Pentium 4 a 400MHz 256 MB de RAM Pentium 4 a 3,2 GHz 500 MB de RAM Pentium 4 a 3,2 GHz 500 MB de RAM MAQ2 MAQ3 MAQ4

Memria

Placa de Rede

Placa de Rede Placa de Rede Placa de Rede Placa de Rede a 1 GB a 10/100 MB a 1 GB a 1 GB

Tabela 4 Hardware instalado nas mquinas de teste.

Em termos de software: Mquina MAQ1 Software Linux Fedora Core 4 kernel Webmin 1.2.9 Apache Linux UBUNTU kernel Webmin 1.2.9 Apache 2.6.12-10386 Perl 5.8.7 Linux Kanotix Kernel Webmin 1.2.9 Apache Linux Kanotix Kernel Webmin 1.2.9 Apache Webmin 1.2.9 Apache Microsoft Windows XP MAQ2 MAQ3 MAQ4 Observaes MAQ1

SO

Webmin Servidor Web Verso do Kernel Perl

2.6.16.1.2115

2.6.14

2.6.14

Active PERL 5.8.8

Perl 5.8.6

Perl 5.8.7

Perl 5.8.7

70 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Tightvnc1.2.9 viewer Outro Software PHP MySQL Tightvnc1.2.9 viewer

Tabela 5 Software instalado nos diferentes cenrios Depois de instalado o software e implementado o cenrio pretendido, procedeu-se execuo das tarefas apresentadas na Tabela 6 em todas as mquinas do cenrio. Ordem 1 2 3 Tarefa Configurar os endereos IP nos hosts Verificar se existe conectividade entre os ns Configurar SSL nos diferentes ns

Tabela 6 Lista de tarefas a executar nos hosts A tarefa n. 1 no deve ser executada dinamicamente, atravs de um servidor DHCP, j que os hosts devero possuir sempre o mesmo endereo IP aquando a iniciao e paragem do Webmin. A tarefa n. 3 deve ser realizada para que o software seja executado em modo SSL (Security Socket Layer) para assim garantir que toda a informao trocada entre o browser web e o servidor Webmin seja encriptada. Assim, em cada uma das mquinas necessrio aceder a:
Webmin > Webmin Configuration > SSL Encryption

No caso de no ter instalado a biblioteca OpenSSL e o mdulo PERL Net::SSLeavy necessrio descarregar estes mdulos do site oficial do Webmin [27]. Aps a instalao desses mdulos basta aceder ao SSL Encryption e como se pode ver na Fig. 18 preciso preencher o formulrio edit_ssl.cgi que para alm da ligao SSL permite a criao de uma chave SSL. A partir do momento em que se guarda o formulrio, o Webmin passa a ser executado em modo SSL e a ser acessvel por:
https://localhost:<porto do servico>

71 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 18 Mdulo SSL Encryption

4.1 Cenrio 1: Definio do cluster


A principal vantagem da administrao com Webmin a possibilidade de se poder definir e configurar um cluster. Deste modo, para implementar o cenrio da Fig. 19 necessrio executar as tarefas definidas na Tabela 7 em cada uma das 4 mquinas:

72 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Ordem 1 2

Tarefa No mdulo Webmin Server Index definir os hosts do cenrio No mdulo Cluster Webmin Servers definir os hosts geridos por cada um Tabela 7 Lista de tarefas para a definio de um cluster
Gere por lig. directa

Cluster
g. r li po a re t Ge direc RE GE

Ge re dir por l e c i g. ta GE RE

MAQ2
Ge re dir por l ec ig. ta GE RE

MAQ1

lig. or e p cta r Ge dire

MAQ3

MAQ4

Gere por lig. directa

Fig. 19 Cluster de teste A tarefa n. 1 consiste na definio, em cada uma das mquinas, dos hosts da rede que correm o Webmin. Assim, necessrio aceder categoria Webmin, ao mdulo Webmin Server Index e registar em cada uma das mquinas, as outras 3. necessrio inserir o endereo IP, seleccionar ligao SSL e fornecer o login e senha de acesso aos hosts que vo ser geridos pela mquina em questo. Para alm disso necessrio que se aceitem chamadas RPC, pois s assim os servidores Webmin comunicaro entre si. Outro aspecto relevante deste mdulo que ao aceder ao cone de cada uma dos hosts nele registados, chamado o ficheiro link.cgi que faz a 73 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

ligao peer-to-peer entre os dois hosts, ou seja acede via browser ao outro, no porto em que o Webmin escuta. No caso do login ter sido fornecido entra automaticamente, em caso negativo, se conhecer o login pode entrar. Pode-se observar na Fig. 19, as linhas a tracejado mostram que as mquinas conseguem ter acesso umas s outras, via browser por ligao directa. Basta digitar o endereo IP e o porto em o Webmin escuta. A tarefa n. 2 consiste na atribuio dos hosts a gerir a cada uma das mquinas, ou seja, na mquina 1 registam-se a mquina 2 e 4. E na mquina 2 regista-se a mquina 3. Essa atribuio feita na categoria Cluster, no mdulo Cluster Webmin Server manipulando o ficheiro add.cgi do subdirectrio cluster-webmin.

4.2 Cenrio 2: Criao de um utilizador no Cluster


Este cenrio pretende criar um utilizador no cluster, mas um utilizador especial, um utilizador que seja administrador do Webmin, para evitar os danos causados por o administrador ser o utilizador root, danos esses descritos no sub-captulo 2.4.3. Assim na tabela seguinte sero descritas as tarefas inerentes a esta operao. Ordem 1 2 3 Tarefa Definir utilizador no cluster Definir utilizador como utilizador Webmin Aplicar o novo administrador ao cluster

Tabela 8 Tarefas necessrias para a criao de um utilizador Webmin

A tarefa n. 1 consiste em aceder a partir da MAQ1 da Fig. 19 categoria Cluster, ao mdulo Cluster User and Groups e criar em todos os hosts o utilizador sysadmin e como se pode ver na Fig. 20 feito atravs do preenchimento e submisso do formulrio user_form.cgi que manipula os ficheiros falados no captulo anterior na seco 2.6.1.

74 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 20 Formulrio de insero de um utilizador no cluster Nesta imagem so visveis os campos a preencher e como se pode ver a primeira vez que se introduz a password, no caso de no ser encriptada, ela aparecer em clear text, o que no uma boa poltica, pois permite ser visualizada por algum mal intencionado. A melhor opo usar a funo crypt para encriptar a password e depois inseri-la no formulrio no campo Pr-encrypted password. A partir do momento em que se clica no boto Create o formulrio submetido e o utilizador criado nas MAQ1, MAQ2 e MAQ4 da Fig. 19. Ou seja, o utilizador no ser criado na MAQ3, pois esse n no gerido pela MAQ1, mas sim por um n que gerido pela MAQ1. Aqui entra o conceito do n filho e do n neto. A mquina principal (MAQ1) tem dois ns filhos (MAQ2 e MAQ4) e um n neto (MAQ3). Deste modo, cada uma das mquinas s pode gerir por cluster os seus ns filhos.

75 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Para inserir o utilizador na MAQ3 deve-se aceder ao mdulo Webmin Servers Index da MAQ1, posteriormente aceder MAQ2 e j na 2. mquina aceder ao mdulo Cluster Users and Groups e fazer um Synchronize entre esta (MAQ2) e a MAQ3. A operao de Synchronize (users and groups) s aconselhada quando se quer que existam os mesmo utilizadores e/ou grupos numa e noutra mquina, no caso de no ser isso o desejado deve-se criar o utilizador manualmente atravs do mdulo Users and Groups da Categoria System. Esta opo de Synchronize, embora disponvel em poucos mdulos, garante a coerncia da informao nas vrias mquinas de um cluster. No caso deste mdulo especfico permite que os utilizadores de uma mquina estejam disponveis em todas. No entanto necessrio ter ateno a esta funcionalidade pois pode no satisfazer as necessidades por exemplo, no faz sentido propagar uti.lizadores de squid em mquinas que no possuam o servidor disponvel.

Como se pode determinar neste teste bastante fcil a criao de um utilizador no Webmin, e de tal forma intuitiva que qualquer utilizador sem grandes noes de administrao de sistemas o consegue fazer. Considerando as configuraes necessrias para se adicionar manualmente um utilizador enunciada nas seco 2.6., francamente mais acessvel faz-lo atravs do Webmin, pois todo o processo de manipulao dos vrios ficheiros envolvidos completamente transparente para o administrador.

4.3 Cenrio 3: Adio de um novo mdulo


Para alm dos mdulos enunciados no Anexo A, o Webmin tem muitos outros, adequados a outras tarefas, considerados Third-Party Modules. A maioria esto disponveis em [27] e [24], embora possam estar publicados noutro stio da Internet. Estes mdulos foram criados por diversas pessoas que puderam contribuir para o projecto Webmin por este ser Open Source. Exemplo disso o mdulo de monitorizao que ser instalado nesta seco. 76 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Uma das principais tarefas do administrador consiste na monitorizao dos sistemas e rede. Com uma boa monitorizao pode-se detectar alguns problemas na sua fase inicial, por exemplo, estreitamentos na rede. Assim sendo, optou-se por incluir verso standard do Webmin, um novo mdulo chamado Sysstats ou Webminstats. Este mdulo mostra sobre a forma de grficos a utilizao dos diversos componentes do sistema como: CPU, discos, firewall, os utilizadores, as interfaces de rede, Internet, entre outros. O mdulo em causa foi criado por Eric Gerbier e necessita de ter previamente instaladas as seguites aplicaes: rrdtool Esta package [23] usada para armazenar valores numa base de dados round-robin ( especificado o tamanho desta base que no sofrer alterao ao longo do seu tempo de vida; na insero de elementos, estes so inseridos nas posies livres e quando no houver mais espao, os dados mais antigos so sobrescritos, numa espcie de fila circular) e manipular grficos. Este software Open Source distribudo a licena GNU GPL. Webmin Programa que serve de base ao Sysstats. PERL Todo o cdigo escrito em PERL. tar Comando usado para manipular directrios comprimidos. lsof Comando usado para reportar a lista de todos os ficheiros abertos, bem como todos os processos que os abriram. Snort - Sistema de preveno e deteco de intruso na rede. Tem de ser instalado para que o submdulo de monitorizao do snort funcione. MySQL Base de dados Open Source extensamente conhecida, que tem se ser instalada para que o submdulo de monitorizao do MySQL funcione. Aps a instalao e configurao dos servios e comandos enunciados, instala-se o mdulo Sysstats que anteriormente se descarregou da SourceForge [25] para um directrio local. Este mdulo instala-se acedendo rea de gesto dos mdulos do Webmin:
Webmin > Webmin Configuration > Webmin Modules

77 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Onde ser dada a localizao do directrio anterior. Aps a instalao do novo mdulo surge uma nova opo no Webmin denominada Historic System Statistics, na categoria System. Ao aceder a esse novo mdulo surgem os submdulos que se podem observar na Fig. 21. Pode-se aceder a cada um deles e monitorar o histrico do sistema por hora, dia e ms.

Fig. 21 Mdulo Sysstats Ao aceder ao submdulo Panorama General consegue-se ter uma viso geral de todo o funcionamento do sistema e da rede. A Fig. 22 apresenta um exemplo da monitorizao efectuada na MAQ1 com o Webmin, usando o mdulo Historic System Statistics.

78 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 22 Viso geral do funcionamento do sistema. A partir da consulta destes grficos pode-se saber, por exemplo, quais as horas de sobrecarga do sistema, que se traduzem invariavelmente em atrasos no mesmo. Como 79 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

detectar a fonte do problema meio caminho para a sua resoluo, mais uma vez o Webmin prova a sua utilidade, tendo vrios mdulos adequados s diversas necessidades do administrador.

4.4 Cenrio 4: Instalao e configurao de um servio


Qualquer organizao, por muito pequena que seja, necessita de um conjunto de servidores instalados para garantir que os vrios servios funcionem. Alguns desses servidores encontram-se na categoria Servers do Webmin, como por exemplo o Web, o proxy e o mail. Infelizmente, ainda no possvel instalar e configurar um servio em cluster, atravs do Webmin, excepto servios bsicos como impressoras e firewalls. Deste modo, foi escolhido o servidor Web Apache, por ser um servio medianamente trabalhoso, e a mquina de teste foi a MAQ4. Tal como foi esclarecido na seco 3.3 um servio antes de ser configurado necessita de estar instalado no sistema. Portanto o primeiro passo fazer o download do site oficial do Apache [5]. Neste teste a verso descarregada o Apache 2.2.3 e o procedimento o seguinte:
gunzip -d httpd-2_3_3.tar.gz tar xvf httpd-2_3_3.tar #Cria um novo directrio com as sources cd httpd-2_3_3 make #compila o cdigo fonte make install #instala o programa

De seguida necessrio localizar o ficheiro httpd.conf que o ficheiro principal de configurao do Apache.
locate httpd.conf

Outra localizao necessria a do ficheiro executvel que permite iniciar o servio, par-lo e reinici-lo.
whereis apache

80 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

A partir deste ponto pode-se comear a configurao no Webmin acedendo rea de gesto de servidores e mais concretamente configurao do servidor Apache.
Servers> Apache Web Server

Aparece uma mensagem de erro a notificar o administrador sempre que o mdulo Apache no est instalado ou que est mal configurado e uma ligao a essa configurao. De seguida aparece um formulrio como o que pode ser observado na Fig. 23. Apresenta o ecr inicial de configurao do servidor Apache, de acordo com o contedo do ficheiro httpd.conf.

81 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 23 Painel de configurao do servidor Apache

Ao guardar o formulrio aplica-se o seu contedo ao ficheiro httpd.conf. De seguida aparece um painel como se pode observar na Fig. 24 e tem de se seleccionar a opo Start Apache para iniciar o servidor.

82 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 24 Painel relativo ao servidor Apache depois de configurado Para testar se realmente o servidor est a funcionar correctamente deve recorrer-se ao uso de um editor de texto para alterar o ficheiro index.html (localizado no DocumentRoot da figura anterior) como pode ser visto na Fig. 25.

83 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 25 Ficheiro index.html O ltimo passo aceder ao browser e introduzir http://localhost ou

http://localhost:<porto escuta>, onde <porto_escuta> e o porto em que o servidor atende os pedidos, pois est assim definido no ficheiro httpd.conf. Seguidamente aparece o resultado que se v na Fig.26.

84 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig.26 Resultado do ndex.html Como se pode concluir neste cenrio, instalar um servio como o Apache, torna-se bastante acessvel a partir do Webmin, contrariamente edio manual do ficheiro httpd.conf. Como este ficheiro bastante extenso torna-se um transtorno alterar os seus parmetros manualmente, pois tem de ser percorrido. Assim a edio de formulrios Webmin mais dinmica, atractiva e intuitiva para os administradores, at para os menos experientes.

4.5 Cenrio 5: Administrao uma rede heterognea com mquina Windows


As ltimas verses do Webmin j disponibilizam suporte para o sistema operativo Windows XP. Embora no conste no mbito deste projecto administrar sistemas proprietrios, julgou-se importante tratar a possibilidade de configurar uma rede heterognea atravs do Webmin, constituda por mquinas Windows e Linux. O cenrio de teste foi implementado na MAQ1, em Windows e tentou-se que esta gerisse a MAQ4, conforme definido na Tabela 4 e Tabela 5. 85 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Para comear necessrio aceder ao site oficial do Webmin [27] e descarregar a verso para Windows. l descrito que esta verso ainda muito limitada e esto disponveis poucas opes de configurao. No entanto, este teste tentou explorar as integraes do sistema operativo Windows na rede Linux, administrada atravs do Webmin. H um conjunto de programas que tm de ser instaladas antes: Winzip ou pkunzip, para poder extrair os ficheiros de extenso .zip; ltima verso do ActiveState Perl [1] para Windows, para poderem ser executados ficheiros .pl em Windows; O programa process.exe [6], uma ferramenta para listar e terminar processos Windows; O ficheiro sc.exe. Verificar se j est instalado, pois este parte integrante do Windows XP e pode ser encontrado no Windows Resource Kit (em CDROM) de outras verses do Windows; O mdulo PERL Win32:Daemon [21]; necessrio criar o directrio c:\temp no caso dela no existir. Depois de todos os programas anteriores instalados, poder-se- extrair o ficheiro de instalao do Webmin para o directrio c:\Webmin, abrir uma janela de linha de comandos e escrever:
c:\Webmin> perl setup.pl

Nesta configurao surgiu um pequeno problema e aps consulta do frum do Webmin [24], houve a necessidade de alterar uma linha de cdigo do ficheiro setup.pl. Como se pode observar abaixo, substitui-se a primeira pela segunda linha.
#$ex = system("$perl ".&quote_path("$srcdir/oschooser.pl")." ".&quote_path("$srcdir/os_list.txt")." $temp $autoos"); $ex = system("$perl ".&quote_path("$srcdir/oschooser.pl")." ".&quote_path("$srcdir/os_list.txt")." $temp");

Esta alterao foi necessria, pois a varivel $autoos que a responsvel por detectar o tipo de sistema operativo em questo, no conseguiu detectar o sistema como Windows XP, tratando-se eventualmente de um bug da verso. 86 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Depois de corrigida a linha anterior necessrio executar novamente o setup.pl para configurar o Webmin. Em seguida necessrio definir qual o utilizador Webmin, a sua password e qual a localizao dos directrios etc e logs. Posteriormente, acede-se ao browser e introduz-se http://localhost:10000, preenchendo o login e a senha definidos anteriormente. Aparece o painel da Fig. 27, que como se pode observar possui as mesmas categorias excepto a categoria Hardware em relao verso para Linux.

Fig. 27 Painel de Entrada do Webmin na verso para Windows Aps percorrer as vrias categorias detectou-se porm, que em cada uma delas existem menos mdulos que nas verses para Linux. Todavia, como o objectivo era testar a possibilidade de conseguir configurar uma rede heterognea, em primeiro lugar necessrio registar a MAQ4 no mdulo Webmin Servers Index como se pode observar na Fig. 28.

87 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 28 Registo da MAQ4 no Servers Index da MAQ1 De seguida necessrio aceder categoria Cluster, e no mdulo Cluster Webmin Servers, adicionar a MAQ4 como fazendo parte da lista de mquinas geridas pela MAQ1, como se pode ver na Fig. 29.

88 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Fig. 29 Mquinas geridas pela MAQ1 At aqui no ocorreu problema nenhum. No entanto, como esta verso ainda est pouco desenvolvida a partir daqui no foi possvel fazer muita coisa. O primeiro teste desejado seria criar um utilizador no cluster todavia, no est disponvel o mdulo de Cluster User Groups, mas est o Webmin Users na categoria System e o Cluster Change Passwords na categoria Cluster, portanto tentou-se ver se era possvel mudar a password a um utilizador Webmin. O procedimento foi o seguinte: 1. Clicar na figura da MAQ4 da Fig. 29 que, atravs do formulrio link.cgi faz como que se estabelea uma ligao directa MAQ4; 2. Criar um utilizador Webmin na MAQ4 chamado sysadmin e definir-lhe 1 password; 3. Criar um utilizador Webmin na MAQ1 chamado sysadmin e definir-lhe a mesma password; 4. Aceder na MAQ1 ao mdulo Cluster Change Passwords. 89 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Aqui aconteceu o inesperado, surgiu uma mensagem de erro a notificar o administrador que existiam utilizadores definidos no mdulo Cluster Users and Groups, e uma ligao para aceder a esse mdulo, no qual surge outra mensagem de erro a dizer que o administrador (admin) no tem acesso ao mdulo. Ou seja este teste no pode ser concludo. Tentou-se de seguida ver se o mdulo Cluster Shell Comands conseguiria executar um comando simples como o date: O resultado esperado na MAQ1 (Windows) seria: A data actual 06-09-2006 Introduza a nova data: (dd-mm-aa) O resultado esperado na MAQ4 (Kanotix) seria: Wed Sep 6 15:42:58 GMT 2006 O resultado final mostrou a data correcta da MAQ4 mas da MAQ1, surgiu uma mensagem de erro de execuo relacionada com o PERL, no tendo sido possvel executar o comando date. Assim, o que se pode concluir que Webmin realmente recebe o resultado da mquina remota (MAQ4) contudo, na mquina local Windows ocorreu um erro de linha de interpretao Perl que j tinha ocorrido antes quando se tentou que a MAQ1 fizesse parte do cluster gerido por ela. Os testes realizados com uma rede heterognea (Windows e Linux) no foram muito satisfatrios, permitindo concluir que a verso para Windows ainda se encontra pouco estvel. Tal facto, pode explicar-se pelas poucas verses do Webmin para esta plataforma, pois s passou a estar disponvel na verso 1.230 (20 de Setembro de 2005) do Webmin e a verso actual a 1.290 (29 Junho de 2006), da no se poder comparar com a maturidade de 8 anos de desenvolvimento das verses para Linux. Estima-se que as novas verses para Windows integrem mais funcionalidade e a resoluo dos problemas encontrados.

90 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

5 Concluses
Os testes realizados permitem concluir que o Webmin veio ajudar francamente a tarefa de administrao de sistemas e redes. possvel assegurar que funes como a centralizao, automatismo e gesto remota so disponibilizadas de uma forma quase transparente para o administrador. A administrao com o Webmin de tal modo intuitiva que, os servios mais bsicos, como a adio de utilizadores, podem ser desempenhadas por qualquer utilizador comum sem necessidade de grandes conhecimentos de administrao. No entanto, ainda um programa em desenvolvimento e, deste modo, ainda no cobre todas as tarefas que o administrador necessita. Nem tudo se consegue administrar pelo Webmin. Para problemas mais complexos necessrio recorrer linha de comando, sendo sempre necessrio instalar os servios primeiro, para depois os poder configurar pelo Webmin. Em categorias como a cluster, de vital importncia para a gesto centralizada, ainda falta suporte para vrios servios, nomeadamente o no ser possvel configurar servidores (por exemplo o Web) neste modo. Em relao verso do Webmin para Windows, esta ainda uma verso muito instvel e imatura, mas note-se que surgiu recentemente e necessita de maior desenvolvimento. Como qualquer outro produto Open Source, incentivada a contribuio para o programa. Existe uma wishlist [29] que promove o desenvolvimento de novos mdulos (ver seco 3.9) e que solicita contribuio permanente para mdulos que esto a ser desenvolvidos presentemente. Para alm dessa wishlist, considera-se para possvel trabalho futuro, o desenvolvimento de mdulos que possam servir para garantir alguma necessidade especfica do administrador, que ainda no seja suportada pela aplicao. Um dos problemas das frequentes das verses do Webmin o facto de nem todas possurem o formato de comunicao das anteriores. Ou seja, a formatao dos formulrios pode variar entre as vrias verses, no sendo possvel a garantia de 91 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

compatibilidade com as verses anteriores. Para evitar esse problema e para que o for desenvolvido no se torne incompatvel com verses anteriores o uso de XML [4] no desenvolvimento, em vez de HTML. O XML oferece uma anlise semntica dos documentos Web que os torna legveis tanto pelo Homem como pela mquina, evitando assim a incompatibilidade entre verses. Tambm existe a possibilidade de usar XML-RPC para a troca de mensagens, a partir da prxima verso [28] do Webmin, esta linguagem permite a troca de mensagens entre sistemas incompatveis. Outra das possidades de desenvolvimento de novos mdulos considerada, consiste na criao de um programa que manipule um conjunto de mquinas com o Webmin instalado, a funcionar em cada uma delas como um agente sendo usado pela nova aplicao o servidor miniserv.pl de cada mquina para processamento dos pedidos. Assim, tornar-se-ia possvel elaborar um conjunto de tarefas que ainda no constam na categoria Cluster, pois o programa principal entrava em contacto com cada uma das mquinas e elas localmente executavam a tarefa desejada. A centralizao de tarefas beneficiaria tambm de um controlo central atravs de um base de dados, onde o perfil de configurao das mquinas seria armazenado centralmente e comparado com a configurao local. Desta forma, conseguia-se uma administrao centralizada especialmente benfica em redes alargadas que se encontram geograficamente dispersas. Os objectivos propostos para este trabalho foram alcanados. Remato este trabalho com a minha opinio pessoal: gostei muito de desenvolver este projecto e considerando que partida os meus conhecimentos de Linux eram escassos, foi um desafio. Aprendi vrios conceitos sobre a administrao de redes e sistemas Linux e passei a considerar a rea bastante aliciante.

92 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

6 Referncias
[1] Active Perl, (http://www.activestate.com/Perl.plex) [2] An Lisp Programming Language, (http://www.engin.umd.umich.edu/CIS/course.des/cis400/lisp/lisp.html) [3] Antunes, Mrio J. (2006), Apontamentos Tericos de SDP, ESTG/IPLEI [4] Antunes, Mrio Joo Gonalves (2001), Administrao Centralizada de Grupos UNIX, DCC-FEUP [5] Apache, Site oficial, (http://www.apache.org) [6] Beyondlogic, (http://www.beyondlogic.org/solutions/processutil/processutil.htm) [7] Cameron, Jamie (2004), Managing Linux Systems with Webmin, Prentice Hall, ISBN 0-13-140882-8 [8] CPAN, Site oficial (http://www.cpan.org/) [9] Distrowatch, (http://distrowatch.com) [10] Domingues, Patrcio R Apontamentos de Sistemas Operativos ESTG/IPLEI [11] Expresso Emprego, (http://expressoemprego.clix.pt/scripts/indexpage.asp?headingID=3439) [12] Free Software Foundation, Site oficial (http://www.fsf.org) [13] Gnome, GNU Network Object Module Environment, (http://www.gnome.org) [14] GNU, Gnu is not UNIX (http://www.gnu.org) [15] KDE, K Desktop Environment, (http://www.kde.org) [16] Pereira F. (2000) Linux Curso Completo, FCA Editora de Informtica, Lisboa, Portugal. [17] Perl, Site oficial, (http://www.perl.org) [18] Python, Site oficial, (http://www.python.org) [19] Red Hat, Site ofcial (http://www.redhat.com) 93 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

[20] RFC do RPC da Sun, ftp://ftp.rfc-editor.org/in-notes/rfc1050.txt [21] Roth Consulting, (http://www.roth.net/perl/Daemon) [22] Ruby, Home Page, (http://www.ruby-lang.org/en/) [23] RRDTool, Site oficial, (http://www.rrdtool.org) [24] SourceForge, Webmin, (http://sourceforge.net/projects/webadmin) [25] SourceForge, WebminStats (http://sourceforge.net/search/?type_of_search=soft&words=WebminStats) [26] Ubuntu, Site oficial (http://www.ubuntu.com) [27] Webmin, Site oficial, (http://www.webmin.com) [28] Webmin, Site oficial, novas actualizaes disponveis para a prxima verso, (http://www.webmin.com/changes-1.297.html) [29] Webmin, Wishlist (http://opensource.digisec.de/) [30] Webmin, Writing Webmin Modules (http://www.webmin.com/modules.html) [31] Wikipedia, (http://pt.wikipedia.org/wiki/Imagem:Osi_parallel_port.PNG) [32] X, (http://www.x.org)

94 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

ANEXOS

95 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Anexo A - Servios do Webmin

Categoria Webmin (7 mdulos)


Servio Ficheiros de configurao de backup Breve Descrio Garante backups manuais ou calendarizados e restaura os ficheiros de configurao geridos pelos mdulos do Webmin Suporte Todos os SOs

Mudar linguagem Permite ao utilizador mudar a lngua e theme ao Todos os SOs ou theme Webmin Configurao Usermin Aces de Log do Webmin Configurao do Webmin Configura as opes globais para o servidor de gesto de contas de utilizadores Usermin Visualiza os logs detalhados das aces dos clientes do Webmin Todos os SOs Todos os SOs

Configura o prprio Webmin, como as Todos os SOs mquinas permitidas, SSL e mdulos ou themes instalados Mostra os ndices de outros servidores Webmin para ligao Todos os SOs

ndice de Servidores do Webmin Utilizadores Webmin

Cria utilizadores Webmin e configura quais os Todos os SOs mdulos e caractersticas s quais permitido o acesso

Tabela A 1 Mdulos da Categoria Webmin.

96 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Na categoria System: (19 mdulos)


Servio Breve Descrio Suporte Maioria dos SOs

Iniciar e terminar Configura scripts para serem executados na sesso altura do boot a partir do /etc/initd.d ou /etc/rc.local Mudana de Permite mudar a password de qualquer senhas de acesso utilizador do sistema

Apenas SOs diferentes de Windows

Quotas em disco Configura e edita quotas em disco de utilizadores ou grupos sobre o sistema de ficheiros local Sistemas de ficheiros de disco e de rede Sistemas de ficheiros de backup Utilizadores e Grupos LDAP

Maioria dos SOs

Monta os sistemas de ficheiros ou ficheiros Maioria do SOs swap normalmente configurados no /etc/fstab ou /etc/vfstab Realiza backup e restaura sistemas de ficheiros Maioria dos SOs usando comandos da famlia do dump ou restore

Gere utilizadores e grupos armazenados na base Apenas SOs diferentes de dados LDAP, usada para autenticao UNIX, de Windows Samba e Cyrus IMAP Configura a rotao automtica dos ficheiros de log do Apache, Squid, Syslog e outros ficheiros de log Edita o ficheiro /etc/mailcap, que mapeia tipos MIME para handlers de programas Apenas SO diferentes de Windows Todos os SOs

Rotao de ficheiros de log Programas tipo MIME Servio de Monitorao MON Autenticao PAM Processos em Execuo Comandos programados Tarefas Cron programadas

Configura o MON, um servio de monitorao e Apenas Linux alerta do sistema Configura os passos da autenticao PAM usados pelos servios como telnet, POP e FTP Maioria dos SOs

Lista, termina e reinicia os processos no sistema Maioria dos SOs Programa a execuo de comandos e scripts Cria, edita e elimina tarefas Cron Maioria dos SOs Maioria dos SOs

97 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

EntradasS de Segurana

Configura programas de monitorizao de segurana como portsnentry, hostsentry e logcheck Gere as packages de software do sistema, e instala novas packages Configura servios de baixo nvel para serem executados na altura do boot e para seleco do runlevel inicial Visualiza pginas do man, HOWTOs e outras packages de documentao Configura o servidor de syslog no sistema e permite a visualizao de logs no sistema Cria e edita utilizadores e grupos UNIX a partir dos ficheiros /etc/passwd e /etc/group

Apenas SOs diferentes de Windows

Packages de software Configurao inicial SysV

Maioria dos SOs Maioria dos SOs

Documentao do Sistema Logs de Sistema Utilizadores e grupos

Maioria dos SOs Maioria dos SOs Maioria dos SOs

Tabela A 2 Mdulos da categoria System.

Na categoria Servers: (25 mdulos)


Servio Servidor Web Apache Servidor DNS BIND Servidor CVS Breve Descrio Configura a maioria das directivas e caractersticas do Servidor Apache Cria e edita domnios e registos DNS Configura um servidor CVS acessvel remotamente, gere utilizadores e procura no repositrio Suporte Maioria dos SOs Maioria dos SOs Apenas SOs diferentes de Windows

Servidor DHCP Servidor IMAP/POP3 Davecot Recuperao de mail Fetchmail

Gere redes partilhadas, sub-redes, mquinas e Maioria dos SOs grupos para ISC DHCPD Configura os servidores de recuperao de mail Dovecot IMAP e POP3 Configura o programa Fetchmail que automaticamente recupera o mail a partir de outros servidores Todos os SOs

Apenas SOs diferentes de Windows

Proxy FTP Frox

Configura o Frox, um proxy transparente para Linux e FreeBSD clientes FTP Todos os SOs

Servidor IM Jabber Configura o servidor de mensagens instantneas multi-protocolo Jabber

98 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Gesto de listas Majordomo Servidor de BD MySQL Servidor OpenSLP

Cria e configura listas de mail para Majordomo Configura bases de dados, tabelas e permisses no servidor de BD MySQL Configura o servidor de localizao de protocolos Configura o servidor de mail Postfix Gere BDS, tabelas, e utilizadores no servidor de BD PostgreSQL

Apenas para SOs diferentes de Windows Todos os SOs Apenas SOs diferentes de Windows Apenas SOs diferentes de Windows Todos os SOs

Configurao do POSTFIX Servidor de BD Post GRESQL Servidor ProFTPD

Configura o servidor de FTP ProFTPD. Todos os SOs Suporta todas as opes na da maior parte dos protocolos standard Edita recipientes no ficheiro global /etc/procmailrc, e aplicado em todos os emails de entrada Configura o servidor de mail Qmail, uma alternativa ao Sendmail Apenas SOs ! Windows

Filtro de Mail Procmail Configurao Qmail

Apenas SOs diferentes de Windows Apenas SOs diferentes de Windows Todos os SOs

Leitura do mail dos L email nas caixas de cooreio dos utilizadores utilizadores Servidor SSH Partilha de Ficheiros com Windows atravs de SAMBA Configurao do Sendmail Filtro de mail SpamAssassin Gerador de anlise de relatrios do Squid Servidor Proxy SQUID Servidor WU-FTP Configura o servidor SSH para logins remotos seguros

Cria e edita partilha de ficheiros e impressoras Maioria dos SOs por Samba

Gere pseudnimos, masquerading, reescrita de endereos e outras caractersticas Configura SpamAssasin para filtrar os email recebidos

Maioria dos SOs Todos os SOs

Configura e programa SARG, uma ferramenta Apenas SOs de gerao de relatrios a partir de acessos diferentes de Windows aos logs Squid Configura as opes do Squid, ACLs, Maioria dos SOs parmetros de caching e utilizadores de proxy Configura o controlo de acessos, FTP annimo e outras aplicaes do WU-FTPd Maioria dos SOs Todos os SOs

Anlise de ficheiros Gera relatrios a partir do servidor web, de log Webalizer servidor Proxy e ficheiros de log FTP

99 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Tabela A 3 Mdulos da categoria Servers.

Na categoria Networking: (15 mdulos)


Servio Cliente ADSL Breve Descrio Configura um cliente PPP com uma package RP-PPPoE Suporte Apenas Linux Todos os sistemas operativos

Monitorizao de Visualiza relatrios de largura de banda Largura de Banda dispendida por: mquina, porto, protocolo e tempo Configurao de VPN IPSec Kerberos5 Firewall Linux

Configura um cliente ou servidor por uma VPN Apenas Linux IPSec usando FreeSWAN Configura o cliente Kerberos5 no sistema Configura uma firewall Linux usando iptables. Permite a edio de todas as tabelas, correntes, regras e opes Edita as partilhas de ficheiros NFS definidos em /etc/exports Apenas Linux Apenas Linux

Exportaes NFS

Maioria dos SOs Maioria dos SOs

Cliente e Servidor Configura um sistema como um cliente, NIS servidor ou slave NIS. Notar que NIS+ no suportado Configurao de Rede Configura tempo e interfaces activas no boot, DNS, routing e /etc/hosts

Maioria dos SOs Maioria dos SOs Apenas Linux

Servidor de dialin Configura um servidor dialin usando mgetty e PPP PPP Cliente de dialup PPP Cliente de VPN PPTP Servidor VPN PPTP Tneis SSL Configura a package WV-Dial para se ligar Internet com um modem atravs de uma ligao PPP Configura e estabelece ligaes com um servidor de VPN usando o protocolo PPTP

Apenas Linux

Configura o sistema como um servidor PPTP e Linux ou FreeBSD depois permite ligaes a clientes Linux ou Windows VPN Configura tneis SSL para encriptar servios como POP3 ou IMAP, atravs do stunnel a partir do inetd Permite a edio de tabelas mais usadas na Firewall Shoreline Apenas SOs diferentes de Windows Apenas SOs diferentes de Windows

Firewall Shorewall

100 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Daemon idmapd

Gere o daemon de mapeamento ID NFS

Apenas Linux

Tabela A 4 Mdulos da categoria Networking.

Na categoria Hardware: (9 mdulos)


Servio Software de cpias de Cds Escolha de carregamento no boot GRUB Raid Linux Breve Descrio Suporte

Copia os dados para CDs a partir de imagens Apenas SOs ISO ou directrios seleccionados Configura o carregamento de boot Linux GRUB para permitir a seleco de vrios SOs e kernels ao mesmo tempo Cria RAID 0, 1, 4, 5 e dispositivos lineares num sistema Linux Apenas Linux diferentes de Windows Apenas Linux

Gesto de Volumes Lgicos Parties nos discos locais Administrao de impressoras

Configura grupos de volumes, volumes fsicos e lgicos para Linux LVM Cria e edita parties num disco local SCSI ou IDE em Linux Cria e edita impressoras locais e remotas. Suporta servidores de impresso Windows e drivers de impresso Ghostscript

Apenas Linux

Apenas Linux

Maioria dos SOs

Estado das drives SMART Tempo de Sistema

Verifica o estado dos drivers IDE para detetar problemas e potenciais falhas Ajusta o tempo de sistema e do hardware manualmente ou partir de um servidor horrio

Apenas Linux

Maioria dos SOs

Servidor da Caixa de Configura o sistema de modo a responder Voz (Voicemail) usando o vgetty

Apenas Linux

Tabela A 5 Mdulos da categoria Hardware.

101 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Na categoria Cluster: (10 mdulos)


Servio Mudana de passwords em cluster Cpia de ficheiros Cluster Calendariza a transferncia de ficheiros a partir de um servidor Webmin para outros servidores a partir de um cluster Webmin Cron Jobs de Cluster Cria tarefas Cron programadas para serem executadas em mltiplos servidores em simultneo Comandos de shell em Cluster Packages de software cluster Executa comandos em diversos servidores em simultneo Instala packages RPM, debian e solaris em diversos servidores a partir de uma nica fonte Servidores Usermin Cluster Utilizadores e Grupos de Cluster Instala e gere mdulos e themes em diversos Todos os sistemas servidores Usermin Cria, actualiza e elimina utilizadores e grupos em vrios servidores. Ao contrrio do NIS, cada servidor tem o seu ficheiro de utilizadores e de grupos que so remotamente actualizados por este mdulo operativos Maioria dos SOs Maioria dos SOs Todos os SOs Maioria dos Sistemas Operativos Todos os SOs Breve Descrio Altera, em simultneo, as passwords em mltiplos sistemas de um cluster Webmin Suporte Todos os sistemas operativos

102 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Servidores Webmin em Cluster

Instala e gere mdulos, themes, utilizadores, Todos os SOs grupos e controlos de acesso em vrios servidores Webmin

Motor de configurao

Configura o programa de Cfengine, para determinar e fazer manuteno de determinadas configuraes de administrao de sistemas

Todos os SOs

Monitor Heartbeat

Configura a package Heartbeat no cluster para outro servidor servir automaticamente em caso de falha

Linux e FreeBSD

Tabela A 6 Mdulos da categoria Cluster.

Na categoria Others: (9 mdulos)


Servio Shell de Comandos Breve Descrio Executa comandos shell e visualiza o seu efeito Comandos comuns Cria teclas de atalho para executar os comandos mais comuns e editar ficheiros de sistema Gesto de ficheiros Visualiza, edita e muda as permisses de ficheiros ou directrios no sistema atravs de um gestor de ficheiros parecido com o Windows Tnel HTTP Liga-se a outro servidor HTTP por meio de um tnel atravs do servidor Webmin Mdulos PERL Instala novos mdulos PERL no sistema e v Apenas SOs os mdulos j instalados Directrios Web Protegidas Cria ficheiros htaccess e htpasswd para proteger directrios acessveis via web diferentes de Windows Todos os SOs Todos os SOs Todos os SOs Todos os SOs Suporte Todos os SOs

103 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

Login SSH/Telnet Estado do sistema e do servidor Upload e Download

Faz login no sistema com telnet ou SSH Visualiza o estado dos servios do prprio sistema e de sistemas remotos Faz o upload de vrios ficheiros do servidor e faz o download de mltiplos URLs imediatamente ou calendarizada essas aces

Todos os SOs Todos os SOs

Todos os SOs

Tabela A 7 Mdulos da categoria Others.

Anexo B Bibliografia Auxiliar Consultada


[B1] AWK,(http://mairinque.ime.usp.br/~gubi/cursos/ferramentas/curso/node26.html) [B2] Burgess, Mark (1998) - Principles of a system administration, edition 2.1 [B3] Cooper, Joe The Book of Webmin or How I Learned to Stop Worrying and Love UNIX , (http://www.webmin.com/index.html) [B4] DEI-ISEP (2002), Normas de elaborao de relatrio de estgio. Normas de avaliao [B5]ExpressesRegulareshttp://www.fototelas.com.pt/criando_e_aprendendo_a_usar_ expr.htm) [B6] Instituto Politcnico do Porto (1996), til n.1 Como organizar, ISBN 972-95914-6-6 [B7] LEIC-FEUP, Guia de Elaborao de Relatrios LEIC. Texto acadmico. [B8] Manual de AWK, (http://www.inf.pucrs.br/~manssour/AWK/index.html) [B9] Perl, (http://www.perl.com) [B10] Python, Tutorial Oficial Online, (http://docs.python.org/tut/tut.html) [B11] Santos, Nlia e Silva, Filipa (2005) Clusters de alta disponibilidade, uma abordagem Open Source, DEI ESTG/IPLEIRIA [B12] SED, (http://sed.sourceforge.net) 104 (c) Patrcia Silva 2006

Anlise de Solues Open Source para Administrao de Redes

[B13] SED, Pgina de Aurlio Marinho Jargas, (http://aurelio.net/sed/) [B14] Sousa, Paulo (2002) Pequeno Guia de Elaborao de Relatrios, Unidade de Ensino. Instituto Superior de Engenharia do Porto. [B15] The Sed Programming Language, (http://www.engin.umd.umich.edu/CIS/course.des/cis400/sed/sed.html) [B16] Webmin, Breve descrio dos servios do, (http://www.webmin.com/standard.html) [B17] Wikipedia, Enciclopdia Livre, (http://www.wikipedia.org)

105 (c) Patrcia Silva 2006

Potrebbero piacerti anche