-- CURSO TÉCNICO DE INFORMÁTICA -- MÓDULO II SISTEMAS ... · Colégio Tableau – Curso Técnico...

34
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados -- CURSO TÉCNICO DE INFORMÁTICA -- MÓDULO II SISTEMAS OPERACIONAIS DE REDE Bem vindo! Estamos no segundo módulo de nosso curso, na disciplina de Sistemas Operacionais de Rede, onde iremos estudar os sistemas operacionais voltados para servidores, objetivando o controle da rede, gerenciamento de usuários, distribuição de cotas de disco, organização no armazenamento de arquivos, gerenciamento de impressão, entre muitas outras funções. A disciplina contém 60 horas de duração, divididas em 7 capítulos, como dispostos nesta apostila. PRÉ-REQUISITOS É fundamental conhecer os comandos básicos em sistemas Linux como copiar, colar, mover, renomear, apagar e criar diretórios/arquivos. Ao final desta apostila, há um apêndice com estes comandos, para consulta. É também de suma importância que você possua acesso de administrador à máquina utilizada, pois os comandos e ações realizadas alteram ou interferem diretamente em arquivos cruciais, onde um usuário comum não poderia operar. SOFTWARES A apostila foi produzida com base nos Sistemas Operacionais Linux Debian 6.0, Linux Ubuntu 9.04 e Windows Server 2003, sendo portanto, os comandos apresentados voltados a essas versões, podendo, obviamente, sofrer alterações em outras versões. Bons estudos!

Transcript of -- CURSO TÉCNICO DE INFORMÁTICA -- MÓDULO II SISTEMAS ... · Colégio Tableau – Curso Técnico...

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

-- CURSO TÉCNICO DE INFORMÁTICA --

MÓDULO II

SISTEMAS OPERACIONAIS DE REDE

Bem vindo!

Estamos no segundo módulo de nosso curso, na disciplina de Sistemas Operacionais de

Rede, onde iremos estudar os sistemas operacionais voltados para servidores,

objetivando o controle da rede, gerenciamento de usuários, distribuição de cotas de

disco, organização no armazenamento de arquivos, gerenciamento de impressão, entre

muitas outras funções. A disciplina contém 60 horas de duração, divididas em 7

capítulos, como dispostos nesta apostila.

PRÉ-REQUISITOS

É fundamental conhecer os comandos básicos em sistemas Linux como copiar, colar,

mover, renomear, apagar e criar diretórios/arquivos. Ao final desta apostila, há um

apêndice com estes comandos, para consulta. É também de suma importância que

você possua acesso de administrador à máquina utilizada, pois os comandos e ações

realizadas alteram ou interferem diretamente em arquivos cruciais, onde um usuário

comum não poderia operar.

SOFTWARES

A apostila foi produzida com base nos Sistemas Operacionais Linux Debian 6.0, Linux

Ubuntu 9.04 e Windows Server 2003, sendo portanto, os comandos apresentados

voltados a essas versões, podendo, obviamente, sofrer alterações em outras versões.

Bons estudos!

2

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

1. INTRODUÇÃO

Sistemas operacionais constituem uma camada importante nos ambientes computacionais. Eles

fazem o papel de intercomunicação entre os hardwares e os usuários, através de um ambiente

(quase sempre) gráfico. Num cenário dominado pelas plataformas Windows, Linux e Mac OS,

onde cada sistema traz características marcantes, a preferência esteve, na maior parte do

tempo, dividida entre usuários. Nesta briga intensa e constante, adicionamos os servidores.

Os sistemas operacionais de rede (SOR)

procuram elevar ou estender a

experiência de uso dos sistemas

operacionais locais (SOL). Eles

adicionam funções de gerenciamento

para os diversos tipos de serviços onde

é possível ter um servidor, sempre com

intuito de facilitar o compartilhamento

de recursos. Além disso, ainda contém

diversas ferramentas de segurança e correção de erros. Por estes e outros motivos, alguns

usuários experientes tem optado por utilizar um sistema operacional de rede em ambiente

doméstico.

A maioria das plataformas de SOL contém distribuições para servidores. A plataforma Windows

apresenta as distribuições Server 2000, 2003, 2008 e 2012. Seu uso ainda é justificado pela

facilidade do ambiente gráfico e o grande poder de gerenciamento do Active Directory, o qual

estudaremos nos capítulos adiante. A plataforma Linux oferece versões para servidores em

várias distribuições como Debian e SUSE, justificando seu uso na robustez e segurança, mas

dificultando por seu modo texto controlado exclusivamente por comandos via código. E para

Mac OS temos as versões Server identificadas por nomes de felinos (Tiger, Leopard, Puma,

etc), com funcionalidades comuns, mas usado em menor escala por ser considerado um sistema

muito fechado com relação a compatibilidades.

1.1. Ponto a Ponto x Cliente-Servidor

Em ambientes de rede, podemos ter arquiteturas Ponto a Ponto ou Cliente-Servidor. A escolha

do modo de trabalho influencia no custo, desempenho e manutenção da rede como um todo.

Em ambientes Ponto a Ponto (Peer-to-Peer ou P2P), todas as máquinas componentes da rede

contém aplicações de servidor integradas onde elas são interligadas. Isso significa que arquivos

e funções de gerenciamento estarão presentes em todos os computadores. Positivamente,

significa que a estrutura de rede não possui um ponto central, minimizando impactos de

3

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

ataques à rede. Negativamente representa risco de inconsistência e redundância de dados,

além do grande desafio de sincronismo das informações.

Arquiteturas Cliente-Servidor (Client-Server) são as mais utilizadas em sistemas operacionais

de rede, principalmente em ambiente corporativo, onde todas as aplicações ficam em uma

única máquina. As demais máquinas componentes da rede atuam como “cliente” da máquina

principal, realizando requisições para acessar os serviços da rede. É uma arquitetura

centralizadora, de modo a eliminar duplicidade de dados, porém de alto risco por criar uma

dependência quase plena da máquina central.

1.2. Servidores Dedicados x Servidores Não Dedicados

Em arquiteturas Cliente-Servidor, podemos ainda classificar o servidor em dois tipos. Um

servidor não dedicado representa uma maquina da rede executando aplicações de cliente de

modo simultâneo com as aplicações de servidor, isto é, pode ser utilizada por um usuário para

realizar tarefas comuns (como digitação de textos, por exemplo) ao mesmo tempo em que

desempenha as funções de servidor. Servidores não dedicados representam, obviamente, um

grande risco para a segurança e integridade dos dados, uma vez que a máquina não é

logicamente isolada, participando do ambiente de rede como um computador comum.

Já os servidores dedicados contêm exclusivamente aplicações de servidor. Em geral, são

máquinas com estrutura de hardware avançada e isoladas da rede, física e logicamente. É

comum também os servidores dedicados não possuírem mouse ou monitor, driver de CD/DVD

ou USB, permitindo apenas acesso remoto ou em casos extremos acesso físico controlado

(manutenção ou troca de peças, por exemplo).

1.3. Serviços de Rede

Já aprendemos que servidores são máquinas que gerenciam a rede de um modo geral, com a

função de atender os computadores clientes em suas requisições. Uma rede pode ter mais de

um servidor, subordinados ou não, de modo a criar “subgerentes” para partes específicas da

estrutura, remetendo sempre ao objetivo principal de compartilhar recursos. Vejamos alguns

desses recursos e as finalidades do servidor.

1.3.1. Servidor de Arquivos

É talvez o tipo mais comum de servidor,

consistindo em uma máquina com grande

capacidade de armazenamento, de modo a reter

e distribuir arquivos pela rede. O armazenamento

pode ser inclusive para cópias de segurança de

4

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

arquivos contidos localmente nas máquinas cliente. O grande desafio de um servidor de

arquivos é o controle de versão, envolvendo questões gravação e edição simultânea, onde a

solução atual está em softwares comerciais específicos.

1.3.2. Servidor de Aplicação

Como o nome sugere, armazena a instalação de uma aplicação, por exemplo, um software

comercial de controle financeiro ou gestão escolar. Nestes casos, as máquinas clientes podem

possuir uma arquitetura chamada “diskless”, onde não há discos rígidos ou há um com

pouquíssima capacidade, já que estas máquinas irão acessar a aplicação instalada diretamente

no servidor. Geralmente, servidores de aplicação são dedicados a executar especificamente

aquela aplicação, contendo um ambiente preparado e configurado para isso (por exemplo os

servidores Java que contém a JVM - Java Virtual Machine instalada).

1.3.3. Servidor de Banco de Dados

Largamente usado em aplicações comerciais, tem a função de responder às consultas e realizar

cadastros. É importante ressaltar que as máquinas cliente geralmente não acessam diretamente

o banco de dados (em alguns casos, estes estão remotos). Ao invés disso, o acesso é feito pela

própria aplicação (uma tela gráfica), seja por uma interface local ou via web. Haja vista uma

base de dados ser o “coração” de uma aplicação comercial, é comum dele ser “espelhado” para

mais de um servidor, para garantir redundância e alta disponibilidade das informações. Neste

caso, a sincronização entre as várias bases de dados de um sistema é o grande desafio.

A maioria das grandes corporações do setor possuem os chamados SGBD (Sistema Gerenciados

de Banco de Dados), dos quais podemos destacar o Oracle (considerado o maior banco de

dados empresarial do mundo), o MySQL (gratuito e um dos mais populares), o Firebird

(amplamente utilizado no Brasil, Rússia e Europa, compatível com Windows, Linux e Mac OS) e

o SQL Server (desenvolvido pela Microsoft, inicialmente para caixas eletrônicos).

1.3.4. Servidor de Impressão

Uma das grandes aplicações de servidor, trata-se de máquinas espalhadas pela rede conectadas

diretamente a uma impressora. Representa grande economia financeira, pois, desta forma,

podemos ter vários computadores com acesso impressão, sem necessariamente estarem

ligados fisicamente a uma impressora. As principais plataformas de sistemas operacionais de

rede possuem ferramentas para gerenciar desde uma simples fila de documentos para

impressão até um controle de cotas de papel por usuário em determinado período de tempo.

5

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

1.3.5. Servidor Web

Também referenciado como um servidor de comunicação, o servidor web pode ter diversas

finalidades, dentre as quais, podemos citar a distribuição de Internet/intranet para as máquinas

cliente, armazenamento de correio eletrônico e hospedagem de páginas web (seja um website

interno ou externo). Pode também hospedar aplicações comerciais em versões web, acessíveis

diretamente pelo navegador da máquina cliente (seja esse acesso interno, por intranet, ou

externo, pela Internet).

Dentre os principais servidores web, destacamos o Apache, servidor gratuito com suporte a

diversas funcionalidades (estudaremos mais adiante) e o Internet Information Service,

desenvolvido pela Microsoft para “concorrer” com o Apache. Temos ainda alguns servidores de

aplicação web, como o Web Logic (desenvolvido pela Oracle), o Tomcat, o Glassfish e o JBoss

(ambos para aplicações web em Java).

1.3.6. Servidor de Gerenciamento

Definição genérica para máquinas cujos objetivos é auxiliar na administração e suporte da rede,

através de ferramentas providas pelo próprio sistema operacional de rede ou por softwares

vendidos comercialmente. De um modo geral, a administração é feita com a exibição de dados

estatísticos ou gráficos que mostram tráfego de rede, consumo de disco, usuários ativos,

eventos ou incidentes de rede, estados dos equipamentos, etc.

Gerenciam também a segurança, através de monitoramento das portas, firewalls, antivírus,

acesso e remoto e outros. Entre os exemplos, podemos citar o Nagios (um dos mais populares)

e o MRTG (com geração de gráficos).

6

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

2. PROCESSAMENTO DE DADOS DISTRIBUÍDOS

O modelo de computação utilizado na maioria dos ambientes de rede, seja doméstico ou

corporativo, é o modelo centralizado onde as tarefas ou requisições das máquinas cliente são

processadas por apenas uma máquina ou estrutura. Este período histórico da informática é

conhecido como a “Era dos mainframes”, em referência aos grandes computadores de alto

poder de processamento, advindos

principalmente da empresa IBM

(International Business Machine).

Ainda há vários mainframes em

operação espalhados no mundo,

por se tratar de um cenário

relativamente simples e pouco

custoso, porém, de grande risco

pela grande dependência da

máquina servidora.

Tempos depois, vieram os

modelos chamados de

“computação paralela”, porém

ainda eram centralizados. Estes modelos permitiam acondicionar vários processadores e

memórias (compartilhadas ou não) em único computador, distribuindo, deste modo, a tarefa

entre vários processadores para execução. Mas a dependência ainda continuava, isto é, o

sistema continuava intolerante a falhas.

É proposto então um novo modelo, também paralelo, mas descentralizado. A estrutura consistia

em uma “coleção de computadores interligados e independentes operando de modo a aparentar

ser uma única máquina” [TANENBAUM]. Este modelo permitia que a tarefa fosse distribuída e

executada de modo independente em cada núcleo, sem que haja um ponto central. A

computação distribuída apoia-se ainda em outras características como:

Escalabilidade

Permite adicionar um novo recurso (equipamento, software ou usuário) mantendo um

desempenho satisfatório e sem grandes mudanças estruturais.

Heterogeneidade

Dentro do sistema, encontram-se diversos recursos de diferentes características, operando

perfeitamente como um único sistema.

7

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

Concorrência

Permite que os diversos recursos compartilhados sejam utilizados por vários processos (por

exemplo, uma tarefa utilizar vários processadores de máquinas distintas).

Transparência

É uma característica fundamental em sistemas distribuídos e refere-se ao “mascaramento” de

tudo o que acontece internamente durante a execução de tarefas. O objetivo é não apresentar

o funcionamento interno ao usuário, para que o mesmo não perceba que está, de fato, em um

sistema distribuído. Veja abaixo os tipos de transparência que podem ocorrer no sistema.

Um exemplo de sistema distribuído são as antenas de telefonia celular. As células (área de

cobertura local) se interligam para formar uma grande camada geográfica, mas para o usuário

é tudo uma coisa só. A mudança de uma célula para outra (celular dentro de um carro em

movimento, por exemplo) é praticamente imperceptível (transparência). Outro exemplo são as

lojas virtuais, onde por trás da tela do website visualizado pelo usuário, têm-se um grande

parque de máquinas dispostas para atender as compras dos milhares de usuários ali presentes

(contudo, isso é totalmente transparente para quem está comprando).

8

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

2.1. Grade Computacional (Grid Computing)

A computação em grade é uma das grandes aplicações para sistemas distribuídos. O objetivo é

explorar o grande poder computacional já existente, por meios das máquinas domésticas de

milhares de usuários, ao invés de produzir novos equipamentos, gerando economia. A ideia

parte do princípio de que as máquinas domésticas passam muito tempo ociosas,

“desperdiçando” seu poder de processamento com um simples descanso de tela. A partir de

então, a computação em grade surge como meio de aproveitar esses minutos desperdiçado das

máquinas para realizar outras tarefas em prol comum.

Grandes projetos tem surgido desde então (embora atualmente em menor escala), a maioria

com fundo científico como a decodificação de proteínas (possivelmente uma causa para o

Parkinson e Alzheimer) ou análise de células-tronco. O primeiro grande projeto foi o SETI

(Search for Extraterrestrial Intelligence) onde a tarefa era analisar dados capturados por rádio-

telescópios para descoberta de comunicação alienígena inteligente. A maioria desses projetos

ainda está ativa, embora grande parte dela não seja persistente, isto é, quando o estudo

terminar ou o objetivo for alcançado, o projeto irá desfazer-se.

O conceito da grade é relativamente simples. Um projeto criado dispõe de uma interface de

conexão (geralmente um website ou software) para agrupar as milhares de estações

participantes. Uma das modalidades mais populares é acoplar o descanso de tela da máquina a

um software de grade, de modo que quando este entrar em execução, seu computador estará a

disposição dos servidores da grade. Poucos minutos são o suficiente para uma participação

eficaz na grade, visto que o processamento é “dividido” entre todos que se conectam ao

projeto.

2.2. Nuvem Computacional (Cloud Computing)

A nuvem computacional tem várias frentes de propostas. O projeto inicial foi proposto pela

Google e a ideia era que o armazenamento de arquivos, que é feito em mídias (CD, DVD, pen

drive, etc), passasse a ser feito diretamente na Internet (na ‘nuvem’). Assim teríamos as

planilhas eletrônicas, as fotos, os documentos, as músicas e vídeos, tudo armazenado online e

acessado através de uma conta com usuário e senha. Desde então, o conceito da nuvem

evoluiu, tornando-se mais complexo e desafiador.

Passou a englobar a computação em sua plenitude, isto é, tudo que é feito em um computador,

passaria a ser feito de modo remoto e online. Isto inclui tarefas simples como assistir um vídeo,

instalar programas ou guardar documentos e também tarefas complexas como executar

aplicações ricas em recursos como em um servidor. A estrutura da nuvem computacional foi

concebida para atender 3 modos de interação.

9

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

2.2.1. SaaS (Software as a Service)

Foi a primeira grande interação alcançada com a nuvem, oferecendo softwares como um serviço

e não mais como um produto, seja este serviço pago ou gratuito. O Google Docs foi um

expoente importante nesta categoria ao prover aplicações de escritório (semelhante ao pacote

Microsoft Office) inteiramente de maneira online, onde o documento fica armazenado na conta

do criador e pode ser compartilhado e editado com múltiplos usuários Outra possibilidade foi o

aluguel de software conforme a demanda, cujo valor de pagamento varia com a porcentagem

de recursos disponível do software em questão.

2.2.2. IaaS (Infrastructure as a Service)

Propõe o uso de infraestrutura computacional como um serviço, onde é possível alugar

maquinários de processamento ao invés de comprá-los. É bastante usado no tocante a

servidores que hospedam grandes aplicações como as bancárias. Aqui entra o armazenamento

de arquivos, onde temos a disposição os chamados “discos virtuais” com capacidades variadas.

Inclui também infraestrutura de rede e tráfego de dados. Serviços gratuitos como o OneDrive

da Microsoft, o Google Drive e o Dropbox são populares no oferecimento de armazenamento de

arquivos, podendo inclusive oferecer mais capacidade mediante pagamento.

2.2.3. PaaS (Plataform as a Service)

A plataforma refere-se resumidamente ao sistema operacional que utilizamos nas máquinas. O

conceito é oferecer um “sistema operacional online” como um serviço, onde seja possível

instalar softwares ou desenvolver códigos. Nesta frente, o Windows Azure da Microsoft está em

estágios bastante avançados. Em outra abordagem do termo, o PaaS pode englobar toda a

estrutura que temos domesticamente, de modo online, sem preocupações com aquisições de

licenças de software ou aquisições de hardware.

2.3. Clusters

Clusters são coleções de computadores de modo a processar uma tarefa como uma máquina

apenas. Tem um conceito semelhante à grade computacional, porém as máquinas estão

geralmente em um único ambiente e não remotas. O cluster pode ter uma máquina gerente

(como o modelo Beowulf) ou serem baseados em arquitetura ponto-a-ponto. As máquinas

podem ser relativamente simples, com configuração doméstica, que somadas resultam em uma

estrutura computacional satisfatória para certas tarefas. Implicitamente, o cluster com

máquinas simples pode solucionar um grande problema da computação que é o descarte de

equipamentos considerados obsoletos. O gerenciamento das tarefas e do cluster é feito por

meio de softwares específicos, disponíveis nos principais sistemas operacionais.

Baseados em seus objetivos, um cluster pode ser de 3 tipos.

10

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

2.3.1. Cluster HPC (High Processing Computing)

Tipo bastante comum onde as máquinas são “somadas” de modo a obter um alto desempenho

no processamento de tarefas. A estrutura é simples, baseando-se apenas no aproveitamento do

processador dos computadores com pouco ou nenhum uso de outro componente. É usado em

aplicações pesadas como as científicas, bancárias ou meteorológicas (dados de satélite ou

imagens, por exemplo). Para o gerenciamento, o sistema operacional Microsoft HPC Server

apresenta-se como uma boa solução para resolver problemas complexos como decodificação de

genomas, animação de filmes ou análises financeiras.

Um modelo bastante conhecido de cluster HPC é o Beowulf. Foi utilizado pela NASA para

cálculos científicos de grandes proporções e também para renderização de animações em 3D. O

modelo baseia-se em plataforma Linux e tem como característica utilizar um servidor dedicado

para gerenciamento de todo cluster. Os nós, isto é, as máquinas que compõe o cluster, tem

arquitetura de hardware básica, comparada as máquinas domésticas, o que ajudou a

popularizar o modelo.

2.3.2. Cluster HA (High Availability)

A palavra-chave da alta disponibilidade é redundância. A estrutura do cluster é construída de

modo a prover caminhos alternativos caso algum recurso venha a falhar ( failover). Nestes

casos, as aplicações são “transferidas” para outro recurso, a fim de cont inuar o processo. É um

modelo comumente utilizado em centrais telefônicas, serviços de correios e missões

consideradas críticas, de grande risco ou impacto. É importante notar que não há intervenção

humana nos processos de alta disponibilidade, por exemplo, em uma falha de sistema, o

mesmo aciona o caminho alternativo de modo automático e autônomo. A redundância pode-se

estender para vários dispositivos como fontes de energia, ares-condicionados, links de internet,

etc. A medição da disponibilidade se dá de acordo com o tempo de inatividade (downtime) do

sistema no período de 1 ano, variando na porcentagem apresentada.

11

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

2.3.3. Cluster HS (Horizontal Scaling)

São estruturas construídas de modo a realizar o balanceamento do processamento total, onde o

objetivo é evitar a sobrecarga de uma ou mais máquinas. A tarefa é escalonada para os

servidores por meio de algoritmos especiais.

Round-Robin: São algoritmos circulares, distribuindo as tarefas para o próximo servidor

disponível, de forma sequencial, até que todos estejam ocupados, voltando então ao

primeiro deles.

Least Connections: Redirecionam a tarefa baseado no número de conexões ou

transações ativas de cada servidor. O que estiver atendendo menos processos naquele

determinado momento será o escolhido.

Weighted-Fair: Diferentemente do Least Connections, não considera a quantidade de

requisições atendidas mas sim a carga dos processos e a capacidade de resposta do

servidor. Se um servidor está com 30 transações com tráfego de 100 MB e o outro está

com apenas 2 mas com tráfego de 200 MB, a próxima tarefa será enviada para o

primeiro servidor, por ter uma carga menor (e se este possuir capacidade para

responder mais requisições, é claro).

É bastante comum encontrar clusters combinados entre alta disponibilidade e

balanceamento de carga (HA+HS). O escalamento horizontal serve, nestes casos, como

apoio para a alta disponibilidade, visto que o algoritmo de escalonamento provê

uniformidade na realização das tarefas, evitando sobrecarga de alguma máquina específica,

garantindo sua disponibilidade.

12

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

3. SERVIDORES WEB

Já conhecemos a estrutura da Internet, com suas operações passando por grandes cabos de

dados (backbones). Nosso objeto de estudo agora é o final desses cabos, onde estão os

grandes servidores da Web. São equipamentos dedicados a responder requisições vindas dos

usuários da Web, seja para acessar sites ou serviços, funcionando como hospedeiros para os

arquivos alvo da navegação. Você já parou pra pensar o que acontece nos bastidores da

Internet para que um site apareça em sua tela? Vamos conhecer alguns servidores.

Apache

Tem o nome de Servidor HTTP Apache ou Apache HTTP Server, sendo o servidor Web mais bem

sucedido do mundo. É livre e gratuito, sendo mantido pela Apache Software Foundation,

fundação responsável por outros projetos na Web. É também multiplataforma, sendo suportado

em sistemas Windows, Linux, OS/2 e Novell. Seu nome faz referência a tribo de nativos

americanos Apache, resistente e estratégica em combate, com alusão a robustez e segurança

do servidor. Tem suporte nativo a linguagem PHP, com alto grau de maturidade entre

desenvolvedores, o que justifica em parte sua popularidade.

IIS (Internet Information Service)

Servidor Web desenvolvido e mantido pela Microsoft Corporation para funcionar nas

distribuições Server da plataforma Windows. Trabalha com isolamento de processos o que

permite que cada aplicação seja executada por um processo diferente, sem interferência nos

demais. Tem suporte nativo a linguagem ASP (Active Server Pages) e ASP.NET (tecnologia

oriunda da plataforma .NET)

Tomcat

Estende do servidor Apache, desenvolvido e mantido também da Apache Software Foundation

sendo um módulo específico para processar aplicações em Java, endossado pela Sun

Microsystems para tecnologias JSP (Java Server Pages). O Tomcat faz parte formalmente do

projeto Jakarta da ASF, destinado a desenvolver e manter softwares livres para a plataforma

Java.

Weblogic

Servidor de aplicações Web proprietário da Oracle Inc. destinado a funcionar em ambientes

corporativos de larga escala e também em nuvens computacionais para aplicações em Java,

sendo atualmente um dos principais servidores para ester mercado.

13

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

JBoss

Outro servidor de aplicações Java gratuito e de código aberto, geralmente com o servidor

Apache Tomcat embutido.

Glashfish

Servidor de aplicações Java também gratuito e de código aberto, “concorrente” do JBoss Server

3.1. Arquiteturas LAMP e WAMP

São as arquiteturas construídas sobre sistemas Linux (L) englobando vários outros serviços

Web. Dentre estes, estão o Apache (A), o servidor Web mais popular do mundo, o MySQL (M),

servidor de banco de dados gratuito bastante popular e o PHP (P), linguagem de programação

Web com grande grau de maturidade. Ainda é possível, embora menos comum, encontrar

servidores com o MariaDB, uma ramificação do MySQL e também as linguagens Perl e/ou

Python, seja em conjunto ou em substituição ao PHP.

Em sistemas Linux (distribuições Debian e Ubuntu), para instalar o Apache, utilize o comando

abaixo:

INSTALANDO O SERVIDOR APACHE EM SISTEMAS LINUX

apt-get install apache2

Para Linux, o banco de dados MySQL possui pacotes de instalação para servidor e cliente, além

de ferramentas gráficas que auxiliam no gerenciamento e manipulação das bases de dados.

Abaixo, está o comando para instalação completa. É necessário, em alguns casos, especificar a

versão do pacote, por exemplo, mysql-server-5.1:

INSTALANDO MYSQL EM SISTEMAS LINUX

apt-get install mysql-server mysql-client mysql-server-core mysql-common

E por fim, temos a instalação do PHP. Assim como o MySQL, também há vários pacotes

distintos do PHP. Vamos priorizar por enquanto apenas o cliente e servidor (na versão 5).

INSTALANDO PHP EM SISTEMAS LINUX

apt-get install php5 php5-cli php5-dev

Outros pacotes que podem ser adicionados são os php5-mcrypt, php5-curl, php5-gd e o

libapache2-mod-php5. Estes adicionam funções extras à linguagem.

14

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

Já a arquitetura WAMP é semelhante ao LAMP, mas construído sobre arquitetura Windows,

contando com os mesmos serviços Apache, MySQL e o PHP. O software WampServer é bastante

popular para construir servidores Web com plataforma Windows e pode ser baixado

gratuitamente no site do projeto.

3.1.1. XAMPP

O XAMPP é um software gratuito e multiplataforma que

realiza a instalação dos pacotes Apache, MySQL e o PHP.

Além disso, contém também o PHPMyAdmin, uma

ferramenta gráfica (semelhante ao Microsoft Access) para manipulação das bases de dados

MySQL. Algumas versões vêm com outros módulos inclusos como o Filezilla (servidor FTP para

transferência de arquivos entre o cliente e o servidor), o Mercury (servidor de e-mail) e o

Tomcat (servidor de aplicações Java).

Após baixar e instalar o XAMPP, abra seu navegador e digite localhost e pressione ENTER.

Caso apareça a página do XAMPP, sua máquina está configurada corretamente (na figura

abaixo, o exemplo para sistemas Mac OS).

15

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

4. SERVIDORES DE ARQUIVOS

Uma das principais aplicações de servidores é a distribuição e gerenciamento de arquivos pela

rede. O objetivo é oferecer um ponto central na estrutura para compartilhamento de arquivos

entre os usuários, evitando que o documento seja repassado para cada computador, o que pode

gerar confusão no controle de versão do arquivo. O servidor fica então responsável por todo o

controle, desde o acesso aos diretórios, passando por versionamento de arquivo e também pelo

gerenciamento de cota de disco, onde cada usuário tem um tamanho reservado do disco do

servidor para uso próprio e compartilhado.

As plataformas mais populares para servidores de arquivos variam entre distribuições Linux e

Windows. Vamos conhecer as características de cada um.

4.1. Servidor Samba

O Samba é um software “servidor” popular em sistemas Linux, onde haja máquinas cliente

Windows, permitindo o compartilhamento de arquivos entre as duas plataformas, além de

gerenciar também outros recursos como impressoras. A aplicação nasceu de uma engenharia

reversa do protocolo SMB da Microsoft que tem a função de prover compartilhamento de

arquivos pela rede. O protocolo foi estudado e sua especificação foi adaptada para sistemas

Linux.

Para instalar o samba no sistema Linux utilize a linha abaixo:

INSTALANDO O SERVIDOR SAMBA EM SISTEMAS LINUX

apt-get install samba

Após a instalação, partimos então para a configuração do servidor Samba, o qual é feita pelo

arquivo /etc/samba/smb.conf. Este arquivo é todo dividido em seções, identificadas pelo sinal

de colchetes (por exemplo, seção [global]). A primeira configuração é permitir que os usuários

de sistema Linux acessem o servidor, o que faz com que usuários, necessariamente, tenham

que possuir uma conta Linux. Procure na seção [global] pela linha security=user e ative-a

(apague o sinal de #, caso haja). Salve e feche o arquivo. Após cada configuração é necessário

reiniciar o servidor Samba com a linha abaixo:

REINICIANDO O SERVIDOR SAMBA

/etc/init.d/smbd restart

Vamos agora configurar o acesso as pastas “home” dos usuários. Numa configuração ideal,

cada usuário deve possuir acesso apenas a sua pasta home, sem visualização dos demais

16

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

usuários. A configuração é feita pela seção [homes]. Abaixo, veremos uma configuração ideal,

com explicação das linhas nos parênteses.

CONFIGURAÇÃO IDEAL – SEÇÃO [HOMES]

comment = Diretório Home (Um comentário que identifica cada pasta)

browseable = no (Permite que o usuário navegue em sua própria pasta)

read only = no (Configura a pasta para não apenas de leitura)

create mask = 0700 (Somente o próprio usuário manipulará os arquivos)

directory mask = 0700 (Idem ao anterior, mas válidos para as pastas)

valid users = %S (Só é permitido acesso ao próprio usuário da pasta)

writable = yes (Permite que o usuário altere/crie arquivos na pasta)

Com a configuração acima, conseguimos então que apenas os usuários de cada pasta home

(isto é, seus donos) consiga trabalhar de modo particular em seu espaço, sem que este seja

visualizado ou alterado por outro usuário.

Suponha agora que queremos compartilhar uma pasta chamada “galera” dentro do /home ,

permitindo acesso apenas aos membros do grupo “users” (já existente no sistema). É preciso

inserir a configuração deste novo compartilhamento no arquivo smb.conf. Crie um nova seção

chamada [galera] no arquivo e insira a configuração abaixo:

CONFIGURAÇÃO – SEÇÃO [GALERA]

comment = Pasta da Galera (Um comentário que identifica cada pasta)

path = /home/galera (Caminho completo da pasta compartilhada)

create mask = 0770 (Permite que o grupo manipule o arquivo)

directory mask = 0770 (Idem ao anterior, mas válidos para as pastas)

valid users = @users (Só é permitido acesso ao grupo users)

force group = users (Força o uso do grupo users nesta pasta)

writable = yes (Permite que o usuário altere/crie arquivos na pasta)

Para testar, é necessário adicionar um usuário ao Samba, para que este tenha autorização se

autenticar no servidor. Vamos criar um usuário “jonas” com a linha abaixo, adicionando-o ao

grupo users (já que apenas este grupo possui acesso a pasta compartilhada no servidor).

CRIANDO O USUÁRIO “JONAS”

adduser jonas –m –G users

Escolha uma senha para a conta deste usuário. Agora iremos adicioná-lo ao Samba:

ADICIONANDO O USUÁRIO “JONAS” AO SERVIDOR SAMBA

smbpasswd –a jonas

Escolha uma senha para a autenticação no servidor e pronto!

17

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

4.2. Compartilhando arquivos no Windows Server

O compartilhamento de arquivos e diretórios nas versões Server dos sistemas Windows pode

ser feito do mesmo modo das versões Cliente ou através de um assistente gráfico. Para o mais

simples, clique com o botão direito do mouse sobre

o arquivo/diretório desejado e escolha a opção

“Compartilhamento e Segurança”. Na tela seguinte,

você deve escolher os usuários que terão acesso ao

item compartilhado, bem como as permissões de

cada um. Caso algum usuário ou grupo não esteja

na lista será necessário adicioná-lo pelo botão

“Adicionar”.

Já pelo assistente gráfico, vá ao menu Iniciar –

Ferramentas Administrativas – Assistente para

configurar o servidor. Avance as telas e na lista de

opções que aparece, escolha “Servidor de

Arquivos”. É importante ativar o gerenciamento de cotas de disco para maior controle no

compartilhamento (caso não tenha ativado ainda, o assistente irá solicitar). Para ativar, clique

com o botão direito sobre o disco local (C:) e escolha “Propriedades”. Clique na aba Cota e

marque a opção “Ativar gerenciamento de cota”. Voltando ao assistente, a configuração é

semelhante ao Samba, com as opções para o nome de exibição da pasta, caminho completo do

item compartilhado, permissões de arquivos e diretórios. Assim como no Samba, recomenda-se

que o administrador tenha acesso total e os outros usuários possuam acesso limitado,

geralmente leitura e gravação.

18

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

5. GERENCIAMENTO E CONTROLE

Servidores de gerenciamento baseiam-se em monitorar dados estatísticos e estados dos

recursos (por exemplo, se estão ativos ou não). São importantes para administradores de

redes, funcionando como “olhos” dentro da estrutura. A gestão de redes faz uso do protocolo

SNMP (você sabe o que é um protocolo de rede?) que é capaz de transportar informações como

parâmetros de configuração, dados de desempenho ou incidentes com recursos da rede.

O funcionamento no SNMP é baseado em dois elementos principais: o supervisor e os agentes.

O supervisor é a máquina responsável por requisitar informações aos agentes (softwares), que

por sua vez, reside nos equipamentos de rede, em diferentes níveis e camadas. Assim que

ocorre a solicitação, o agente transmite as informações ao supervisor que pode tomar decisões

programadas sem interferência humana. Não são todos os equipamentos de rede que podem

ser gerenciáveis, sendo obviamente mais caro os que possuem esta funcionalidade. Para os que

são gerenciáveis, estes possuem uma base de dados chamada MIB (Management Information

Base) contendo as informações de gerenciamento. O trabalho do agente nada mais é do que

consultar esta base, coletar os dados e transmitir ao supervisor quando solicitado.

5.1. Gerência com MRTG

Para o supervisor, há ferramentas que formatam a exibição de dados de forma amigável, como

gráficos coloridos e tabelas. Um exemplo é o MRTG (Multi Router Traffic Graphic), utilitário

multiplataforma que gerencia dispositivos através do SNMP mostrando o tráfego passante

através de gráficos. Para instalar o MRTG na plataforma Linux, utilize a linha abaixo:

INSTALANDO MRTG EM SISTEMAS LINUX

apt-get install mrtg

No arquivo de configuração “/etc/mrtg.cfg” você deve determinar em qual pasta o MRTG irá

trabalhar e armazenar os gráficos. Por padrão, é definido o diretório “/var/www/mrtg”, portanto

crie essa pasta dentro do Servidor Apache com o comando abaixo.

CRIANDO A PASTA DE TRABALHO DO MRTG EM SISTEMAS LINUX

mkdir /var/www/mrtg

Para verificar se o serviço está sendo executado, abra o navegador, digite localhost/mrtg e

pressione ENTER.

19

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

5.2. Gerência com NAGIOS

Outra ferramenta popular de monitoramento é o Nagios, que, de forma semelhante ao MRTG,

gerencia recursos da rede como serviços e equipamentos, notificando o administrador caso haja

falhas. Possui uma interface de monitoramento via navegador, o que permite visualizar alertas,

obter relatórios e tomar ações preventivas em caso de falhas. Antes da instalação, crie um

usuário e um grupo chamado “nagios”, pois estes serão utilizados pela própria aplicação. Os

pacotes do Nagios não estão hospedados em repositórios Linux, mas pode ser baixado

diretamente pelo site do projeto com o comando wget. Para instalar o Nagios, utilize a linha

abaixo:

INSTALANDO NAGIOS EM SISTEMAS LINUX

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.4.tar.gz

O pacote está compactado. É necessário descompactá-lo para compilar o arquivo, pois o código

ainda é puro. Utilize as linhas abaixo para descompactar e compilar o Nagios.

DESCOMPACTANDO O NAGIOS E ENTRANDO NA PASTA

tar -xvzf nagios-3.0.4.tar.gz

cd nagios-3.0.4

COMPILANDO O NAGIOS

./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin

--with-htmurl=/nagios/ --with-nagios-user=/nagios --with-nagios-

grp=/nagios --with-gd-lib=/usr/lib --with-gd-inc=/usr/lib

Agora sim, com o código compilado, podemos fazer a instalação. Executa as linhas abaixo para

automatizar as configurações.

INSTALANDO NAGIOS E AUTOMATIZANDO CONFIGURAÇÕES

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf

5.3. Controle com Proxy

Um proxy é uma espécie de filtro de redes que permite bloquear ou restringir determinadas

operações na rede como downloads, acesso a websites, etc. Ele é comumente instalado no

20

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

computador diretamente ligado a Internet, onde as demais máquinas da rede passarão a fazer

requisições Web através desta. Um exemplo de proxy bastante popular é o Squid. O serviço

Squid funciona como bloqueador de endereços de Internet, controlando o acesso da rede

interna à Internet. Normalmente um proxy é instalado é configurado em uma máquina com

acesso direto a rede externa, passando então a responder por todas as outras máquinas que

tentam acessar essas redes. Para instalar o Squid, utilize a linha abaixo.

INSTALANDO SQUID

apt-get install squid

Após a instalação, entre na pasta /etc/squid, onde se encontra o arquivo de configuração do

proxy, o squid.conf. O arquivo de configuração é extenso, com quase 5000 linhas, com muitos

comentários explicativos. Para tornar a configuração mais funcional, administradores de rede

costumam criar um arquivo separado, criando suas próprias configurações. Vamos seguir este

exemplo e manter o arquivo original para consultas. Renomeie o arquivo com o comando mv

squid.conf squid.conf-original. Agora vamos criar nosso arquivo com o comando nano

squid.conf. Dentro deste arquivo, iremos digitar nossas configurações, sendo ideal a separação

em blocos para uma melhor visualização do arquivo. Vamos começar com as configurações de

autenticação. Acompanhe.

CONFIGURANDO O SQUID - AUTENTICAÇÃO

auth_param basic program /usr/lib/squid/pam_auth

auth_param basic children 10

auth_param basic realm Faça seu login

auth_param basic credentialsttl 4 hours

auth_param basic casesensitive off

Vamos às explicações. A primeira linha especifica qual script será responsável por processar a

autenticação, neste caso utilizando as próprias contas de usuários da rede. A configuração

children refere-se a quantidade de processos simultâneos serão suportados, a fim de evitar

múltiplas autenticações ao mesmo tempo. A terceira linha é uma frase que irá aparecer ao

usuário na caixa de autenticação do Squid. A quarta linha especifica o tempo máximo de 4

horas para o usuário permanecer autenticado (ou até ele fechar o navegador). A última linha

ignora a diferença entre maiúsculas e minúsculas na autenticação.

O proxy Squid funciona por meio de regras chamadas ACL (Access Control List), que pode ser

uma lista de endereços IP ou de URL bloqueadas/liberadas para acesso na rede. O próprio Squid

já possui na instalação uma grande quantidade de ACL prontas como controle por horários, dia

da semana, endereços localhost (pacotes de sua própria máquina), portas TCP, navegadores,

etc., o que permite um controle total da rede. Vamos construir algumas ACL:

21

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

CONFIGURANDO O SQUID - ACL

acl all src all

acl localhost src 127.0.0.1/32

acl usuarios proxy_auth REQUIRED

Essas são três ACL essenciais para o controle. A primeira define todas as regras possíveis para

quaisquer situações. É interessante criá-la para quando precisamos liberar plenamente o proxy,

por algum motivo (manutenção, testes, etc). A segunda ACL controla os pacotes oriundos da

própria máquina onde o Squid está instalado, por exemplo, para testes no servidor Web. A

última regra (chamamos hipoteticamente de ‘usuarios’) diz que a autenticação é obrigatória

para conseguir passar pelo proxy.

Podemos também criar nossas próprias ACL, de acordo com a necessidade de controle. Para

exemplo, vamos criar listas de controle para termos ou palavras contidas em endereços de site

e também para extensões de arquivos. Acompanhe:

CONFIGURANDO O SQUID - ACL

acl bloqueados url_regex sexo download ultrasurf

acl liberados url_regex sexoesaude

acl downloads urlpath_regex \.mp3$ \.avi$

Na primeira regra, criamos uma ACL chamada “bloqueados” utilizando o comando url_regex

para indicar os termos que não serão aceitos pelo proxy, isto é, não poderão estar contidos na

URL. A mesma lógica é usada na segunda ACL, onde adicionamos possíveis exceções para a

regra anterior. A terceira ACL são para controles de extensões de arquivos, através do comando

urlpath_regex. Como geralmente as extensões vêm no final da URL, é necessário colocar o

cifrão ($) para indicar o final do arquivo. É possível também indicar um arquivo de texto

contendo palavras bloqueadas ou permitidas. Para isto, utilize o comando –i para descartar

diferenças entre maiúsculas e minúsculas e o caminho c ompleto do arquivo, por exemplo,

url_regex –i “/etc/squid/bloqueados.txt”.

A ordem em que as ACL são criadas é extremamente importante e indica o que será bloqueado

ou não. Isto significa que na ACL “liberados”, só será liberado o que não foi bloqueado antes, na

regra anterior, pois a leitura do Squid ocorre de cima para baixo (como uma estrutura SE/IF em

programação). Por isso, é recomendável, na última linha, bloquear tudo o que não foi liberado

antes, por alguma regra.

Depois de criadas as ACL, iremos controlá-las com o comando http_access, negando (deny) ou

permitindo (allow) que elas passem pelo proxy, seguindo uma lógica sequencial. Acompanhe no

quadro abaixo:

22

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

CONFIGURANDO O SQUID – HTTP_ACCESS

http_access allow liberados

http_access deny bloqueados

http_access deny downloads

http_access allow usuarios

http_access allow localhost

http_access deny all

Nas regras acima, estamos bloqueando ou liberando as listas criadas anteriormente. Note a

sequência lógica entre as ações, sobretudo as três últimas regras. Primeiro, liberamos a ACL

“usuarios”, isto é, caso a navegação não tenha sido bloqueada antes, o usuário terá que se

autenticar para continuar, pois definimos a autenticação como obrigatória (REQUIRED). Logo

após, liberamos a ACL “localhost” para permitir troca de pacotes dentro de nossa própria rede.

E por último, negamos o acesso a tudo que não foi liberado antes. Note que esta última regra,

só será executada para caso não acontecidos antes, por isso a razão de sua existência na última

linha. Para finalizar o Squid, iremos inserir as configurações gerais do proxy. Essas

configurações são necessárias para o bom funcionamento do servidor.

CONFIGURANDO O SQUID – CONFIGURAÇÕES GERAIS

http_port 3128

cache_mem 512 MB

maximum_object_size_in_memory 4 MB

cache_dir ufs /var/spool/squid 3000 16 256

access_log /var/log/squid/access.log squid

cache_mgr [email protected]

visible_hostname SERVIDOR

error_directory /usr/share/squid/errors/portuguese

A primeira linha especifica a porta aonde o Squid irá “escutar”; a porta padrão é 3128. O

cache_mem especifica o tamanho da memória cache do Squid, onde é recomendado utilizar ¼

da memória RAM. A terceira linha limita o tamanho de objetos sendo manipulados na memória

RAM. O cache_dir regula o funcionamento do cache, com o modo de gravação UFS (Unix File

System), o local de gravação, o tamanho em MB do espaço em disco, quantidade de

subdiretórios e, dentro destes, mais uma quantidade de subdiretórios. A próxima linha

configura o log (o arquivo de registro das ações do usuário), com o local de gravação do log e o

formato de gravação padrão do proxy (squid). Logo após vem o e-mail do administrador do

proxy, o nome do servidor que ficará visível na rede e o diretório com as páginas de erro do

Squid, que podem ser configuradas com linguagem HTML. Vamos reiniciar o Squid para colocá-

lo em operação. Salve o arquivo, feche-o e reinicie o Squid com a linha abaixo.

REINICIANDO O SQUID

/etc/init.d/squid restart ou service squid restart

23

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

5.3.1. SARG

Os relatórios do Squid costumam gerar grandes quantidades de texto, dificultando sua leitura e

consulta. Para facilitar, existe a ferramenta SARG (Squid Analysis Report Generator) que

converte os relatórios para páginas HTML. Para instalar o SARG, utilize a linha abaixo:

INSTALANDO O SARG

apt-get install sarg

Após a instalação, abra o arquivo de configuração em /etc/sarg/sarg.conf. Edite a linha

language para Portuguese. Edite também a linha access_log para a mesma linha de log do

Squid. Desça até a linha output_dir e edite para /var/www/sarg para armazenar as páginas

diretamente no servidor web (tenha o Apache instalado!). Salve o arquivo, feche-o e crie o

diretório “sarg” com o comando mkdir –p /var/www/sarg. Após isso, digite “sarg” (sem

aspas) para gerar o relatório. Caso queira visualizar o relatório gerado, abra o navegador e

digite ipdoservidor/sarg.

5.4. Controle com Firewall

Um firewall tem o objetivo de ‘vigiar’ as portas de rede, verificando dados que entram e saem

das interfaces. É uma palavra popularmente utilizada por bombeiros para designar algum

mecanismo que ajude a combater ou conter chamas. Pode ser um hardware ou software

posicionado na fronteira das redes internas com a Internet. A princípio, pode-se confundir um

firewall com um proxy, mas os é importante notar que os proxies trabalham diretamente com

as aplicações de rede (navegação, e-mail, downloads, etc), enquanto os firewalls trabalham

com os equipamentos de rede (roteadores, switches, etc). O firewall padrão do Linux é o

IPtables. Caso ele ainda não esteja instalado, utilize o comando abaixo.

INSTALANDO O IPTABLES

apt-get install iptables

Ao ser instalado, o IPtables ainda não implementa nenhuma regra de controle, aceitando por

padrão, qualquer requisição (política ACCEPT). Para ver o status do IPtables, utilize a qualquer

momento o comando iptables –L. Vamos trabalhar com o cenário de bloqueio total e liberação

apenas do que for necessário. Digite os seguintes comandos:

IPTABLES – BLOQUEIO TOTAL

iptables –P INPUT DROP

iptables –P OUTPUT DROP

iptables –P FORWARD DROP

24

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

Quer ver o resultado? Tente navegar em algum site e verá que sua requisição será bloqueada,

pois com os comandos acima descartamos todos os pacotes que chegam ao servidor web?

Vamos entender esses comandos.

O IPtables, como o nome sugere, trabalha com tabelas para controle dos pacotes. São 3

tabelas: FILTER, (usada para aceitar ou rejeitar pacotes, filtrando-os), NAT (para tradução,

alteração ou mascaramento de endereços IP) e MANGLE (para alterações especiais em

pacotes). Em cada tabela, ocorre situações em que é possível interferir com uma ação de

firewall.

5.4.1. Tabela Filter

Esta é a tabela padrão do IPtables, isto é, se você não indicar qual tabela quer alterar, esta será

a tabela adotada como padrão. Aqui temos 3 situações: INPUT (quando um pacote chega ao

firewall), FORWARD (quando um pacote chega ao firewall e é encaminhado para outro ponto da

rede) e OUTPUT (quando um pacote sai do firewall).

5.4.2. Tabela NAT

Na tabela NAT podemos alterar dados dos pacotes que circulam pela rede, implementando

funções de roteamento e tradução de endereços IP. Assim como a tabela Filter, temos 3

situações: PREROUTING (altera os dados antes do pacote ser roteado), POSTROUTING (altera

os dados depois do pacote ser roteado) e OUTPUT (altera dados após o pacote sair do firewall).

5.4.3. Tabela Mangle

De uso pouco comum, faz alterações especiais utilizando informações do TOS (Type of Service),

contido no cabeçalho dos pacotes, diferenciando o tipo de pacote a ser transportado e

influenciando na prioridade de transmissão. As operações nesta tabela visam realizar uma

filtragem dos pacotes ao passarem pelo firewall, alterando informações como custo de

roteamento, prioridade de transmissão, espera mínima de tráfego, entre outras. Possui as

situações INPUT, OUTPUT e PREROUTING.

5.4.4. Alvos

São as ações possíveis para um pacote obedecer a uma regra específica. Há várias ações

possíveis, das quais iremos estudas as mais comuns:

ACCEPT: aceita um pacote, isto é, permite sua passagem;

DROP: rejeita um pacote, isto é, bloqueia sua passagem;

REJECT: rejeita um pacote, porém emite um aviso do bloqueio (diferentemente do DROP);

REDIRECT: redirecionam portas em conjunto com a opção --to-port;

25

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

SNAT: altera o endereço de origem das máquinas antes do pacote ser roteado;

DNAT: altera o endereço de destino das máquinas.

5.4.5. Comandos

Os comandos informam ao IPtables o que fazer com uma regra. Há vários comandos, dos quais

iremos estudas os mais comuns:

-A: adiciona uma regra no fim da lista;

-D: apaga uma regra da lista;

-I: adiciona uma regra no início da lista;

-F: apaga todas regras da lista;

-L: mostra as regras existentes na lista;

-P: altera a política padrão das tabelas (na instalação a política padrão é ACCEPT).

5.4.6. Ações

As ações do IPtables são parâmetros de configuração para um regra adicionada e podem

especificar protocolos utilizados, portas envolvidas, interface de aplicação da regra, entre outras

informações. São diversas configurações aceitas, das quais iremos estudas as mais comuns:

-p: especifica o protocolo utilizado na regra;

-i: especifica a interface de entrada envolvida (usada em INPUT e FORWARD);

-o: especifica a interface de saída envolvida (usada em OUTPUT e FORWARD);

-s: origem do pacote;

-d: destino do pacote;

-j: define o alvo (ACCEPT, DROP, REJECT, etc);

--sport: especifica o número da porta de origem do pacote;

--dport: especifica o número da porta de destino do pacote.

Vamos exercitar algumas situações simples onde é possível a interferência de um firewall.

BLOQUEAR O ENDEREÇO WWWW.FACEBOOK.COM

iptables –A OUTPUT –d www.facebook.com –j DROP

REDIRECIONAR AS REQUISIÇÕES WEB PARA O PROXY SQUID (portas 80 e 443)

iptables –t nat –A PREROUTING –p tcp -–dport 80 –j REDIRECT -–to-port 3128

iptables –t nat –A PREROUTING –p tcp -–dport 443 –j REDIRECT -–to-port 3128

ACEITAR TRÁFEGO DA REDE INTERNA E DO LOOPBACK

iptables –A INPUT –i lo –j ACCEPT

iptables –A INPUT –s 192.168.0.1/24 –i eth0 –j ACCEPT

26

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

6. SERVIDORES WINDOWS

As versões de servidores da plataforma Windows começaram a ser desenvolvidas em 2000, ano

em que saiu o Windows 2000 Server, já com um poderoso administrador de redes e um bom

sistema de arquivos para compartilhamentos. Trouxe também o acoplamento do Kerberos, um

protocolo de rede para autenticação que trouxe mais segurança ao trabalhar com criptografia

de chaves mais fortes que os protocolos anteriores. Pouco tempo depois, a Microsoft (empresa

responsável pelo desenvolvimento da plataforma Windows) lançou o Windows 2000 Advanced

Server, uma melhoria do sistema anterior, com a novidade para gerenciamento de clusters com

NLB (Network Load Balance), suporte a até 8GB de RAM (antes eram 4GB) e 8 processadores

simétricos (antes eram 4).

Três anos mais tarde, lançou o Windows Server 2003, com funcionalidades mais completas que

a versão anterior, inclusive suportando redes maiores e clusters de até 8 nós. Havia acoplado

ao sistema, um servidor Web, o IIS (Internet Information Service), hospedando principalmente

a tecnologia ASP (Active Server Pages) também de propriedade da Microsoft. Outro trunfo é o

suporte a impressoras de rede, contendo no sistema cerca de 3.500 drivers dos equipamentos

mais comuns do mercado.

Outras melhorias implementadas foram o aprimoramento do firewall de rede (que mais tarde

tornou-se o Windows Defender), o gerenciamento remoto e o serviço de roteamento de

pacotes, além de incluir mais de 60 ferramentas de linha de comando, embora poucas

utilizadas.

6.1. Active Directory

O Active Directory (AD) é o poderoso módulo de administração de domínios (agrupamento de

máquinas gerenciadas por um controlador) dos servidores Windows. Tem a função de manipular

dados de usuários e outros recursos, concentrando-os em um banco de dados centralizado.

Com ele é possível gerenciar contas, máquinas e grupos de forma simples e eficiente, através

de interfaces gráficas amigáveis. Ao instalar o AD, o computador adquire recursos para

controlar um domínio composto tanto por máquinas locais quanto por máquinas remotas. Antes

de instalar o AD, vamos entender alguns conceitos importantes dessa ferramenta essencial para

a administração de redes Windows.

6.1.1. Classe, Objeto e Atributo

Tudo no Active Directory é considerado objeto. Cada objeto (por exemplo, um usuário) possui

características (nome, descrição, etc) que o identificam e fazem associações com outros

objetos; a essas características damos o nome de atributos. A classe é a especificação ou

27

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

agrupamento dos objetos, por exemplo, “computadores” pode ser a classe que agrupa objetos

“computador”. Há um tipo de objeto especial no AD chamado de container que pode agrupar

outros objetos como numa classe.

6.1.2. Domínio, Árvore, Floresta

Os domínios são a unidade principal na estrutura do AD. Entende-se por domínio um

agrupamento de máquinas remotas ou locais, controladas por um gerente chamado de

controlador de domínio (domain controller). Assim como um proxy, um domínio possui uma ACL

(Access Control List) para controlar o acesso aos objetos dentro dele. Uma árvore representa

um agrupamento de domínios para compartilhamento de recursos em modo global. É

importante notar que as configurações administrativas, de segurança ou permissões da ACL não

atravessam de um domínio para outro assim como um administrador só possui poderes plenos

em seu próprio domínio. Embora seja uma estrutura complexa, a floresta visa agrupar árvores

de domínios distintas.

Para instalar o Active Directory, abra a caixa EXECUTAR (RUN) e digite o comando abaixo:

INSTALANDO O ACTIVE DIRECTORY

dcpromo

Pressione ENTER para iniciar a instalação. Avance algumas telas e escolha se deseja criar um

novo domínio (e uma nova árvore), um domínio em uma árvore existente ou uma árvore em

uma floresta existente. Na próxima tela escolha um nome para o domínio. A seguir, deixe as

pastas padrão para o banco de dados e o log do servidor. Faça o mesmo para a pasta SYSVOL.

Avance algumas telas e escolha o tipo de permissão, se compatível com sistemas antigos ou

somente com as versões Server 2000 e 2003. Avance e defina uma senha para o administrador

do AD. Caso esqueça essa senha, não será possível restaurar a partir de backups do AD no

futuro. Deve então aparecer a tela de confirmação de dados e de instalação. Avance e conclua.

Aguarde alguns minutos e a instalação se encerrará. Reinicie o servidor. Ao retornar, você já

deve ser solicitado a fazer autenticação. Utilize sua senha de administrador.

28

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

6.2. Diretivas de Segurança

O Active Directory permite criar diretivas (regras) de segurança específicas para todo o domínio

(todo o grupo) e também para o controlador de domínio (somente para o servidor). Para

acessar as diretivas siga o caminho descrito abaixo. Lembre-se de possuir acesso administrador

para realizar as alterações no domínio.

DIRETIVAS DE SEGURANÇA

Iniciar – Ferramentas Administrativas – Diretiva de segurança de domínio

Ao abrir a tela, dê duplo clique em

Configurações de Segurança. Na

próxima tela, temos várias opções,

das quais iremos estudar as duas

primeiras. Em “Diretivas de conta”

pode-se controlar as regras de

senhas (tamanho mínimo, tempo de

expiração, complexidade, etc) e

bloqueio de contas dos usuários

(tempo de bloqueio, número de

tentativas, etc). Já em “Diretivas locais” pode-se permitir ou proibir várias ações dos usuários

como desligar o sistema, alterar o relógio, bem como diversas opções de segurança em geral.

6.3. Políticas de grupo

Um dos grandes recursos que auxiliam a administração de rede com AD são as GPO (Group

Policy) que permitem aplicar regras para um grupo inteiro (usuários + computadores). Antes de

criar um grupo (chamado de Unidade Organizacional), vamos aprender a cadastrar um novo

usuário. Siga o caminho abaixo:

CADASTRANDO USUÁRIOS NO ACTIVE DIRECTORY

Iniciar – Ferramentas Administrativas – Usuários e Computadores do AD

Na tela que se abre, clique com o botão direito em Users, aponte em Novo e clique em

Usuário. Preencha os dados, clique em Avançar, escolha uma senha e clique em Concluir (a

senha deve obedecer as diretivas de segurança definidas anteriormente). Dê duplo clique em

Users para visualizar o usuário criado. Note também seu grupo padrão (Usuários). Clicando

com o botão direito sobre o usuário criado e escolhendo Propriedades, pode-se ter acesso a

várias opções de configuração como horário e computadores em que o usuário pode utilizar a

rede, evitar que ele altere a senha, desativar sua conta, enviar uma mensagem, etc.

29

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

Para o cadastro de computadores, siga o mesmo caminho anterior. Na tela que se abre, clique

com o botão direito em Computers, aponte em Novo e clique em Computador. Preencha o

nome do novo computador, avance duas vezes e clique em Concluir. Dê duplo clique em

Computers para visualizar o computador cadastrado.

Agora iremos criar nossa Unidade Organizacional que irá agrupar o computador e o usuário

cadastrados anteriormente. Poderemos então aplicar as políticas para ambos. Siga novamente o

caminho:

CRIANDO UNIDADES ORGANIZACIONAIS NO ACTIVE DIRECTORY

Iniciar – Ferramentas Administrativas – Usuários e Computadores do AD

Clique com o botão direito em Domains Controllers, aponte em Novo e escolha Unidade

Organizacional. Preencha o nome do grupo (sugestão: ALUNOS) e clique em OK. Visualize o

grupo criado, clique com o botão direito sobre ele e escolha Propriedades. Na nova janela

aberta, clique na aba Diretivas de grupo, clique em Novo e escolha um nome para nossa lista

de regras (sugestão: SEGURANÇA). Após criar a regra, clique em Editar.

Nas regras para computadores, pode-se bloquear endereços de sites indesejados, gerenciar

consumo de disco e memória, consumo de rede, configurações de impressão, etc. Para os

usuários temos as configurações do navegador, área de trabalho e rede.

30

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

7. APÊNDICE – PRÉ-REQUISITOS

Como pré-requisito, é fundamental que saibamos os comandos básicos da plataforma, bem

como alguns conceitos de configuração de rede, segurança e outros. Lembramos que para

nossa referência, estamos utilizando a versão Linux Ubuntu 9.04 e Linux Debian 6.0.

7.1. Terminal

O terminal é a tela onde iremos digitar os comandos necessários às operações que faremos.

Caso você esteja utilizando uma versão gráfica da plataforma Linux, clique em Aplicativos –

Acessórios – Terminal. Deve aparecer então o nome do usuário autenticado naquele momento e

o nome da máquina na rede, no formato user@host. Como estamos lidando com um servidor, é

necessário possuir acesso de administrador (no Linux, chamado de root). Para autenticar-se

como administrador, digite su, pressione ENTER e insira a senha administrativa. Pressione

ENTER novamente e, caso esteja correto, deve aparecer root@host.

7.2. Comandos básicos

A seguir, uma lista com comandos básicos no terminal da plataforma Linux.

Comando/Sintaxe Descrição Exemplo

cp arquivo destino Copia um arquivo para um destino cp senhas.txt /home/jonas

mv arquivo destino Move um arquivo para um destino mv senhas.txt /home/jonas

rm arquivo Remove um arquivo rm senhas.txt

cd destino Acessa o destino informado cd /home/jonas

ls Lista os arquivos daquele local

touch arquivo Cria um arquivo touch senhas.txt

cat arquivo Mostra o conteúdo do arquivo cat senhas.txt

nano arquivo Abre o arquivo para edição nano senhas.txt

clear Limpa a tela

adduser nome Adiciona um novo usuário no sistema adduser jonas

passwd Troca a senha do usuário atual

mkdir nome Cria uma nova pasta no local informado mkdir /home/jonas

clock Define a hora do processador

date Exibe a data e hora atuais

whoami Mostra o user autenticado no momento

ls –l Lista os arquivos com permissão

31

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

7.3. Permissão de arquivos, donos e grupos

Quando utilizamos o comando ls –l é possível visualizar os arquivos com informações adicionais,

entre elas o dono do arquivo (quem criou), o grupo (por padrão, o grupo de usuário o qual o

dono pertence) e as permissões. São 3 tipos de permissão possíveis, representadas por letras:

Leitura (read): acessar o diretório ou abrir o arquivo para visualização;

Escrita (write): renomear, excluir, criar um arquivo ou editar um existente;

Execução (eXecute): permite executar um .exe ou um script.

As permissões devem ser dadas em 3 níveis: o dono, o grupo e o restante (quem não é dono e

não faz parte do grupo). Quando listamos as permissões elas aparecem da seguinte forma:

O método mais comum de atribuir permissões é por números, chamado de método octal.

Cada permissão possui “pontos” que devem ser distribuídos ao níveis, sendo leitura com 4

pontos, escrita com 2 pontos e execução com 1 ponto (note que 7 pontos representa permissão

total)

Vamos analisar o exemplo abaixo, sobre o arquivo Documentos (na verdade é um diretório):

Em destaque estão as permissões para o arquivo Documentos. Note que o dono possui todas as

permissões (rwx), o grupo possui leitura e execução (r-x) e o restante, idem. O traço (-)

representa ausência ou proibição daquela permissão. Neste caso, grupo e restante não possuem

escrita (w). Numericamente, a situação acima poderia ser representada por 755. Note também

a indicação do dono (alecrim) e também qual o grupo (alecrim).

32

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

Mas como alterar o dono, o grupo e as permissões? Para alterar o dono utilize o comando

chown (change owner) indicando o nome do novo dono e também qual arquivo. Por exemplo,

alteraremos o dono do arquivo Documentos para o usuário “jonas”.

ALTERANDO O DONO DO ARQUIVO DOCUMENTOS

chown jonas Documentos

Para alterar o grupo de um arquivo, utilize o comando chgrp (change group) indicando o nome

do novo grupo e também qual arquivo. Por exemplo, alteraremos o grupo do arquivo

Documentos para “professores” (este grupo deve existir no sistema!).

ALTERANDO O GRUPO DO ARQUIVO DOCUMENTOS

chgrp professores Documentos

Para alterar as permissões de um arquivo, utilize o comando chmod (change mode) indicando

a nova permissão no modo octal e também qual arquivo. Por exemplo, para o arquivo

Documentos retiraremos as permissões de execução do grupo e do restante dos usuários,

mantendo somente a permissão de escrita; para o dono manteremos todas as permissões.

ALTERANDO AS PERMISSÕES DO ARQUIVO DOCUMENTOS

chmod 744 Documentos

7.4. Repositórios

Repositórios são servidores espalhados pelo mundo, hospedando pacotes de atualização e

também softwares para downloads em plataforma Linux. Para configurar a lista de repositórios,

isto é, onde sua máquina irá conectar-se para atualizações e downloads, acesse o arquivo

/etc/apt/sources.list com o comando abaixo:

ARQUIVOS SOURCES.LIST

nano /etc/apt/sources.list

Você irá visualizar vários endereços web onde estão localizados os servidores Linux públicos.

Utilizando as versões de referência dessa apost ila, para o Linux Ubuntu 9.04 utilize o endereço

http://old-releases.ubuntu.com. Para o Linux Debian 6.0 utilize os servidores brasileiros da USP

http://linorg.usp.br e http://sft.if.usp.br. Outros servidores disponíveis são o

http://ftp.debian.org e http://ftp.br.debian.org/debian.

33

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

7.5. Apt-get

Ferramenta utilizada para remover pacotes instalados, atualizar o sistema e instalar novos

pacotes (estes dois últimos, baseados na lista de repositórios configurada).

apt-get remove nomedopacote: desinstala o pacote indicado;

apt-get install nomedopacote: baixa e instala o pacote indicado;

apt-get update: instala novos pacotes de atualização do sistema;

apt-get upgrade: atualiza versões dos pacotes já instalados;

7.6. Configuração da rede

É importante configurar corretamente as interfaces de rede da máquina para conseguir realizar

as atualizações e comunicar-se com outros dispositivos da rede. O arquivo responsável pela

configuração é o /etc/network/interfaces. Acesse-o com o comando abaixo:

ARQUIVOS INTERFACES

nano /etc/network/interfaces

Comumente configura-se as duas interfaces principais (lo e eth0), salvo se a máquina contiver

mais de uma placa de rede. A interface lo refere-se à sua própria placa de rede (loopback),

enquanto eth0 refere-se à sua comunicação princ ipal com a rede (wireless ou cabeada). Para a

eth0 há dois tipos de configuração: static (manual) ou dhcp (automática). A instrução auto

indica que a interface será ativa logo ao iniciar o sistema. Vejamos um exemplo:

Note que utilizamos a configuração manual (static). Neste caso é

preciso indicar o endereço IP (address), qual a máscara de rede

(netmask) e também o gateway. Caso utilizássemos uma configuração

automática, bastava trocar a palavra static para dhcp e apagar as

linhas abaixo, já que todas seriam configuradas automaticamente.

Após configurar a rede (manual ou automática) é necessário reiniciar

as placas para que estas recebam as novas configurações.

REINICIANDO A REDE

/etc/init.d networking restart ou service networking restart

Para verificar as configurações de rede atuais utilize o comando ifconfig. Caso esteja utilizando

a configuração automática utilize o comando dhclient para receber as novas configurações do

servidor.

34

Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede Todos os direitos reservados

8. REFERÊNCIAS

SILVA, G. Implantação de um sistema de segurança utilizando Linux. FEG-UNESP, 2008.

http://www.oficinadanet.com.br/artigo/405/servidor_apache

http://www.htmlstaff.org/ver.php?id=17264

http://blog.thiagobelem.net/instalando-o-php-5-3-3-no-ubuntu-10-10-maverick/

http://www.bosontreinamentos.com.br

http://clarinhaworld.com.br/?p=757

http://pt.kioskea.net/contents/283-o-protocolo-snmp

http://www.vivaolinux.com.br/artigo/Nagios-Um-poderoso-programa-de-monitoramento-de-

rede-(parte-1)/

http://technet.microsoft.com/pt-br/library/cc668545.aspx

========================================================

Apostila produzida pelo Prof. Esp. Jonas Willian R. Aureliano para o Curso Técnico de

Informática do Colégio Tableau de Guaratinguetá.